Bandwidth Estimation in the Janus WebRTC Server
summary
Janus implements a per-connection bandwidth context in the core and pushes control to the SFU plugin so plugins enforce targets for simulcast layer switching. The estimator uses an acknowledged rate base, analyzes interarrival delays from RTCP TWCC-style feedback to anticipate congestion, and injects probes by sending copies of RTX packets. Tests use a single publisher/subscriber simulcast stream with tc/netem (Comcast wrapper) to emulate constraints, the system switches down and back up reliably but needs further tuning and multi-stream prioritization.
AI-written summary · about
chapters (14)
- 0:00Introduction and context
- 1:05Bandwidth estimation basics
- 3:02WebRTC adaptive streaming
- 4:29GCC and feedback loops
- 5:15Janus and existing algorithms
- 7:28Customizing BWI for SFUs
- 9:37Leveraging ACK rates and losses
- 11:55Analyzing delay patterns
- 13:58Bandwidth probing techniques
- 15:43Janus implementation details
- 17:27SFU plugin integration
- 19:13Testing and future work
- 21:35Janus conference announcement
- 22:28Q&A session
related talks
30mJitsi Videobridge: the state of the art SFU that powers Jitsi Meet
20mBeyond P2P: Video Routing in WebRTC
08mJackTrip WebRTC: Networked Music Experiments In A Web Browser
36mSimulating Network Conditions with JavaScript
28mIntroduction to WebRTC Statistics and getStats() API
22mWebRTC: Connecting Embedded, Mobile and Desktop with the Lowest Latencies
21mWebRTC A Quick Introduction
44mSeamless mobile real-time communication with WebRTC
