WebRTC and AV1

This article is part 1.3 of the "21 Thoughts on Video Streaming in 2021"-series.

Will Law's (Chief Architect at Akamai) third 2021 prediction is about WebRTC and AV1:

AV1 usage with WebRTC grows, offsetting one of the primary weaknesses of that protocol, namely quality per bit.

Keep reading to get 1) context and 2) my take.

Context

So, what's AV1 and what's WebRTC?

  • AV1 is a modern, efficient video codec. (A video codec is a technique to compress a video. A good video codec tries to make the video file size as small as possible, while maintaining as much as possible from the original visual video quality.)
  • WebRTC is a type of video stream which is used for live streaming where interactivity or "ultra low latency" is important. Facebook Messenger, Google Hangouts, Discord, ... all use WebRTC.

WebRTC supporting AV1 basically means that the video quality improves without the user needing to download more data. The other video codecs supported by WebRTC don't give you the same "bang for buck" (i.e. video quality for download/upload speed).

Currently, when you use WebRTC apps like Google Hangouts, it most likely uses VP9 as the video codec. According to Netflix, AV1 can save up to 20% additional compression compared to VP9.

According to https://www.chromestatus.com/feature/6206321818861568, Chrome v90 will add support for AV1 in combination with WebRTC. This is their motivation to building the feature:

AV1 encode is requested by a number of RTC applications, including Duo, Meet, and Webex. The primary benefits of AV1 are:
- better compression efficiency to reduce bandwidth consumption and improve visual quality
- Enabling video for users on very low bandwidth networks (offering video at 30kbps and lower)
- Significant screen sharing efficiency improvements over VP9 and other codecs

So, what are the "weaknesses" of WebRTC?

  • Scaling WebRTC streams is more costly than scaling adaptive HTTP streams like HLS and DASH. (Money matters!)
  • Quality isn't always as great as adaptive HTTP streams like HLS and DASH. (But things like AV1 are really helping!)
  • Content security (e.g. DRM) and (server-side) ads are challenging to implement. (But not impossible!)

Another "weakness" was that the WebRTC specification wasn't final, but as of the 26th of January (2021), the WebRTC 1.0 specification is ready!

My take

Support for AV1 through WebRTC is pretty interesting. Additionally, the finalization of WebRTC 1.0 is also wonderful. I'm keeping a close eye on WebRTC versus "adaptive HTTP streaming" (e.g. HLS and DASH) in the coming years.

But this "versus" is not a "competitive versus" for me. I think we'll keep using WebRTC streams and adaptive HTTP streams. There won't be winners or losers. However, the arguments on when to pick one over the other might shift.