Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does WebRTC support Adaptive Bitrate Streaming for video?

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.

like image 526
Ajay Ponna Venkatesh Avatar asked May 10 '16 03:05

Ajay Ponna Venkatesh


People also ask

Does WebRTC support adaptive bitrate?

WebRTC's Built-in ABR Support Those familiar with WebRTC might know that WebRTC already supports ABR. So, why did we add all these extra adjustments? The WebRTC protocol was designed for peer-to-peer browser connections. As such, in a server-to-browser model, it has built-in ABR on the subscriber side only.

What is adaptive bitrate video?

Adaptive bitrate streaming adjusts video quality based on network conditions to improve video streaming over HTTP networks. This process makes playback as smooth as possible for viewers regardless of their device, location, or Internet speed.

Does YouTube use adaptive bitrate streaming?

Video hosting services like YouTube, Vimeo, and Wistia use what's known as adaptive streaming to deliver videos more efficiently.

Is adaptive bitrate better?

The primary benefit of adaptive bitrate streaming is an improved Quality of Experience. Broadcasters can offer the highest quality video possible for their viewers without risking buffering or other interruptions to the experience. Along with smoother streams, ABR offers a faster startup.


1 Answers

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.

like image 164
Wat Avatar answered Oct 05 '22 07:10

Wat