Does WebRTC support Adaptive Bitrate Streaming for video?
Asked Answered
C

1

6

I am using WebRTC for developing one of my applications. There is no clarity on whether WebRTC natively supports adaptive bitrate streaming of video packets? Does VP8 / VP9 have adaptive bitrate encoding support? Is bitrate_controller WebRTC's implementation of ABR?

Can anyone please throw more light on this? I find no conclusive evidence that WebRTC natively supports Adaptive streaming for Video.

Confabulate answered 10/5, 2016 at 3:45 Comment(2)
WebRTC video calls support and utilize ABR(though I am not 100% sure if it is native to VP8). I have had Vp8 and 9 dynamically adapt the resolution of the call, which caused havoc with my native recorder until I compensated for that.Craniometry
Thank you for your reply. There is a module called 'bitrate controller' in webrtc native. Is this the one that monitors the network and sets the encoder bitrate? My intention is to use the webrtc native abr code for something else. Can you please help me with the implementation files where this is done?Confabulate
C
10

Based on the WebRTC documentation found on this website: https://hpbn.co/webrtc/#audio-opus-and-video-vp8-bitrates I found this:

When requesting audio and video from the browser, pay careful attention to the size and quality of the streams. While the hardware may be capable of capturing HD quality streams, the CPU and bandwidth must be able to keep up! Current WebRTC implementations use Opus and VP8 codecs:

  • The Opus codec is used for audio and supports constant and variable bitrate encoding and requires 6–510 Kbit/s of bandwidth. The good
    news is that the codec can switch seamlessly and adapt to variable
    bandwidth.
  • The VP8 codec used for video encoding also requires 100–2,000+ Kbit/s of bandwidth, and the bitrate depends on the quality of the streams: 720p at 30 FPS: 1.0~2.0 Mbps 360p at 30 FPS: 0.5~1.0 Mbps 180p at 30 FPS: 0.1~0.5 Mbps

As a result, a single-party HD call can require up to 2.5+ Mbps of network bandwidth. Add a few more peers, and the quality must drop to account for the extra bandwidth and CPU, GPU, and memory processing requirements.

So as far as I understand it, both codec will adapt the audio and video stream to the available bandwidth. Hope this helps.

Course answered 3/5, 2017 at 10:1 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.