This repository implements the test cases for congestion control for interactive real-time media described in RFC8867 for the algorithm(s) implemented in Pion.
The current implementation uses vnet.Net
from
pion/transport to simulate network
constraints. There are two test applications, one using a simple simulcast-like
setup and the other one using adaptive bitrate streaming with a synthetic
encoder.
To run the simulcast test, you must create three input video files as described
in the bandwidth-esimation-from-disk
example
and place them in the vnet
directory.
-
Variable Available Capacity with a Single Flow
-
Variable Available Capacity with Multiple Flows
-
Congested Feedback Link with Bi-directional Media Flows
-
Competing Media Flows with the Same Congestion Control Algorithm
-
Round Trip Time Fairness
-
Media Flow Competing with a Long TCP Flow
-
Media Flow Competing with Short TCP Flows
-
Media Pause and Resume
-
Media Flows with Priority
-
Explicit Congestion Notification Usage
-
Multiple Bottlenecks
RFC 8868 describes guidelines to evaluate congestion control algorithms for interactive real-time media. Currently, live statistics can be viewed during the test run via a web interface. In future, we might automate the evaluation.
To run the tests, run go test -v ./vnet/
.
The library is used as a part of our WebRTC implementation. Please refer to that roadmap to track our major milestones.
Pion has an active community on the Slack.
Follow the Pion Twitter for project updates and important WebRTC news.
We are always looking to support your projects. Please reach out if you have something to build! If you need commercial support or don't want to use public methods you can contact us at team@pion.ly
Check out the contributing wiki to join the group of amazing people making this project possible
MIT License - see LICENSE for full text