Skip to content

pion/bwe-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Pion Bandwidth Estimation Test Runner

Test runner for congestion control and bandwidth estimation algorithms in Pion

Pion webrtc Slack Widget
GoDoc Coverage Status Go Report Card License: MIT


This repository implements the test cases for congestion control for interactive real-time media described in RFC8867 for the algorithm(s) implemented in Pion.

Implemented/Planned Test Cases and Applications

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

Evaluation

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.

Running

To run the tests, run go test -v ./vnet/.

Roadmap

The library is used as a part of our WebRTC implementation. Please refer to that roadmap to track our major milestones.

Community

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 [email protected]

Contributing

Check out the contributing wiki to join the group of amazing people making this project possible

License

MIT License - see LICENSE for full text