@@ -22,9 +22,22 @@ real-time media described in [RFC8867](https://www.rfc-editor.org/rfc/rfc8867.ht
2222### Implemented/Planned Test Cases and Applications
2323The current implementation uses [ ` vnet.Net ` from
2424pion/transport] ( https://github.com/pion/transport ) to simulate network
25- constraints. There are two test applications, one using a simple simulcast-like
26- setup and the other one using adaptive bitrate streaming with a synthetic
27- encoder.
25+ constraints. There are three test applications:
26+
27+ 1 . ** Simulcast-like setup** - Uses a simple simulcast configuration
28+ 2 . ** Adaptive bitrate streaming** - Uses synthetic encoder for adaptive bitrate
29+ 3 . ** Video file reader** - Reads numbered JPG image files and sends them as video frames
30+
31+ #### Video File Reader
32+ The video file reader (` VideoFileReader ` ) reads series of numbered JPG image files
33+ (e.g., ` frame_000.jpg ` , ` frame_001.jpg ` , etc.) from a directory and sends them as
34+ individual video frames using an ` RTCSender ` . This allows testing with real video
35+ content while maintaining precise control over frame timing and network conditions.
36+
37+ To use the video file reader test:
38+ - Create directories with numbered JPG files (e.g., ` ../sample_videos_0/ ` , ` ../sample_videos_1/ ` )
39+ - Files should be named with sequential numbers (frame_000.jpg, frame_001.jpg, etc.)
40+ - The reader automatically discovers, sorts, and cycles through the frames
2841
2942To run the simulcast test, you must create three input video files as described
3043in the [ bandwidth-esimation-from-disk
@@ -33,6 +46,7 @@ and place them in the `vnet` directory.
3346
3447- [ ] ** Variable Available Capacity with a Single Flow**
3548- [ ] ** Variable Available Capacity with Multiple Flows**
49+ - [x] ** Dual Video Tracks with Variable Available Capacity** - Uses video file reader with multiple video tracks
3650- [ ] ** Congested Feedback Link with Bi-directional Media Flows**
3751- [ ] ** Competing Media Flows with the Same Congestion Control Algorithm**
3852- [ ] ** Round Trip Time Fairness**
@@ -53,6 +67,37 @@ interface. In future, we might automate the evaluation.
5367### Running
5468To run the tests, run ` go test -v ./vnet/ ` .
5569
70+ To run the main test application with all test cases (including the video file reader test):
71+ ``` bash
72+ cd vnet
73+ go run .
74+ ```
75+
76+ The application will run multiple test scenarios including:
77+ - ABR (Adaptive Bitrate) tests with single and multiple flows
78+ - Simulcast tests with single and multiple flows
79+ - Video file reader test with dual video tracks (requires sample video directories)
80+
81+ #### Video File Reader Test Requirements
82+
83+ ** Dependencies:**
84+ - Test depends on libvpx-dev library. The procedure to install the library on linux machine is:
85+ ``` bash
86+ sudo apt-get update
87+ sudo apt-get install -y libvpx-dev pkg-config
88+ ```
89+
90+ ** Video Preparation:**
91+ - User needs to first decode two videos into sequenced jpg files and put the files under ` sample_videos_0 ` and ` sample_videos_1 ` directories
92+ - The command to use ffmpeg to decode the video is as follows:
93+ ``` bash
94+ mkdir -p sample_videos_0
95+ ffmpeg -i /path/to/input/video0.mp4 -vsync 0 sample_videos_0/frame_%04d.jpg
96+
97+ mkdir -p sample_videos_1
98+ ffmpeg -i /path/to/input/video1.mp4 -vsync 0 sample_videos_1/frame_%04d.jpg
99+ ```
100+
56101### Roadmap
57102The library is used as a part of our WebRTC implementation. Please refer to that [ roadmap] ( https://github.com/pion/webrtc/issues/9 ) to track our major milestones.
58103
0 commit comments