AV1 Codec: AOMedia Video 1 ExplainedJuly 26, 2021
This article provides a quick overview of the AV1 codec: what it is, how it performs, what it costs, and what it’s good for. As you will learn, the AV1 codec is challenging to transcode in real time at this point in time, so it doesn’t play a role in many live workflows, excepting some WebRTC implementations. Encoding cost and the codec’s limited but growing reach also narrow the relevant scope of video on demand (VOD) applications. As you’ll read, even YouTube only uses the AV1 codec on videos that are watched several millions of times.
At the time of this writing, AV1 isn’t supported in any of Wowza’s products or services.
What Is the AV1 Codec?
The AV1 codec is the first codec shipped by the Alliance for Open Media (AOM), a consortium of streaming companies anchored by founding members like Amazon, Apple, Cisco, Facebook, Google, Intel, Microsoft, Mozilla, Netflix, NVIDIA, and Samsung. AOM was announced in September 2015. The group formed because member companies like Google were frustrated that they didn’t have relevant input into standards-based codecs, and because many in the founding group were concerned about confusing and overreaching HEVC royalty policies. In addition, three of the founding companies were separately working towards an open-source codec — Google (VP10), Cisco (Thor), and Mozilla (Daala) — so it made sense to join forces and produce a single open-source code.
AV1 was finalized and launched around May 2018. At the time, AOM members predicted prompt support within most member company’s browsers, and a two-year adoption cycle for mobile and OTT applications. AV1 support within Chrome, Edge, and Firefox came very quickly, and the first Smart TVs with AV1 support shipped in early 2020 as predicted. However, mobile hardware deployments appear to be pushed out to 2026-2027 (see David Ronca’s interview with John Porterfield here, about 31 minutes in), changing the mobile strategy from hardware support to software support.
To date, AOM has published five specifications, for the AV1 Bitstream, AV1 in ISOBMFF, ID3 Timed Metadata, AV1 Image File format, and RTP payload Format for AV1 (draft). According to AOM documentation, each AOM licensee gets “a non-sublicensable, perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as expressly stated in this License) patent license to its Necessary Claims to make, use, sell, offer for sale, import or distribute any Implementation.” However, in March 2019, Luxembourg-based Sisvel International S.A. announced two new patent pools offering licenses on patents “relevant to the VP9 and AV1 specifications.”
On April 8, 2019, AOM issued a statement that “AOM is aware of the recent third-party announcement attempting to launch a joint patent licensing program for AV1.” The statement discusses the steps AOM had taken to ensure that AV1 didn’t infringe on third-party rights but didn’t deny the infringement, which was reasonable given that the associated patent list was not yet available. According to one industry observer, “The entire premise of AV1’s foundation as a fully royalty-free video codec has therefore been thrown into doubt — which has surprised almost no one.” As of this date, the issue has not been resolved.
|Codec Compatibility||Browser||Mobile||Smart TV/OTT|
|VP9||Virtually all||Android, iOS||Most|
|HEVC||Very little||Android, iOS||All|
|AV1||Edge, Firefox, Chrome, Opera||Android||Nascent|
The website CanIUse lists AV1 browser compatibility for both desktop and mobile at 74.9% as compared to H.264’s 98.23%, VP9’s 96.26%, and HEVC’s 18.07%. The only major browsers that lack AV1 support are the Safari browsers on the Mac and iOS, which are two of the few browsers that support HEVC, despite Apple being an AOM member. According to playback results here and here, AV1 should play back efficiently within the browser on most newer desktop and notebook computers, so deployments won’t need to wait for hardware decoding as they might on mobile platforms and almost certainly will on OTT.
AV1 is supported on the Android platform natively, and, as mentioned, has nascent support among Smart TV vendors and other living room devices. According to multiple reports (see here, here, and here) Google required all Android TV-based devices shipped after March 31, 2021 to support the AV1 codec. Still, as compared to the installed base of living room devices, which mostly support HEVC as well as H.264 and VP9, the installed base of AV1-compatible living room devices is still very small.
When gauging codec performance, you consider two aspects: (1) encoding complexity or speed, and (2) encoding quality. With most codecs, including the four discussed in this series, there’s an inverse relationship between the two. That is, the better the encoding quality, the longer it takes to encode. This translates to higher encoding and transcoding costs. Since no codec can completely replace H.264 at this point, these encoding or transcoding costs are additive to existing H.264 encoding-related costs.
|Performance Compared to H.264||Encoding Complexity (Speed)||Encoding Quality|
When first shipped, AV1 encoding times were insanely long, which limited commercial use. Since then, AV1 encoding times have dropped significantly, though encoding costs remain high for many cloud vendors (see here and here), presumably reflecting the encoding time needed to output the codec.
AV1 quality varies by the AV1 implementation. This review tested four implementations, AOM’s standalone aomenc encoder, Intel/Netflix’s SVT-AV1 codec, Visionular’s Aurora1 codec, and libaom, the AOM codec in FFmpeg. At best, AV1 was about 24% more efficient than x265, the HEVC codec in FFmpeg, and about 50% more efficient than x264, the H.264 codec in FFmpeg. Since then, the Alliance for Open Media formed a Working Group to advance the SVT-AV1 encoder “to create AV1 encoder implementations that deliver excellent video compression across applications in ways that remove computational complexity trade-offs for an ever-growing video delivery marketplace.”
As explored in this article, the high cost of AV1 encoding, combined with dropping prices for CDN delivery, make AV1 a cost-effective choice only for videos with extremely high view counts. For example, while writing this article, I checked YouTube’s Trending videos. In the ‘Now’ category, only one of the top five videos had been encoding using AV1, and that was the only music video in the group (Ruger – Bounce, then, 3.4 million views).
In the ‘Movies’ category, YouTube encoded four of the top five trending movies, all above 4.7 million views, with AV1. The lesson seems clear: even if you’re YouTube, if a video doesn’t project to top out over several million views, the increased encoding cost isn’t likely to be recouped in the form of bandwidth savings.
Now let’s examine AV1’s suitability for a range of specific encoding applications. AV1 is poorly suited for live origination and transcode because there are few, if any, hardware encoders for either function. The same is true for HTTP-based low-latency applications. Though several organizations have added real-time AV1 encoding to their WebRTC platforms, it’s not yet an option in Wowza’s WebRTC implementation.
|Codec Suitability||Live Origination||Live Transcode||Low Latency||4K||HDR|
AV1 is well suited for very high-volume 4K videos for browser-based playback, though encoding cost and playback performance should be considered. Note that YouTube uses VP9 for most 4K videos, not AV1. As discussed, hardware support for AV1 playback in the living room is nascent, and while AV1 can be used to deliver HDR10+ metadata, AV1 is not currently a supported codec for DolbyVision delivery.
As mentioned, a patent pool administrator named Sisvel launched a patent pool for AV1(and VP9) in March 2019 seeking royalties on consumer devices, but not VP-encoded content. On the WebM Project FAQ relating to VP9, Google announced that they are aware of the pool, but stated that they have “no plans to limit our use of VP9 or AV1 or change upcoming usage plans based on this announcement from Sisvel.” Since Sisvel isn’t currently seeking royalties on content, the pool should have minimal impact on streaming producers considering publishing with the AV1 codec.
|Codec Royalty Status||Encoder||Decoder||Paid Content||Free Internet Content|
What You Need to Know to Produce AV1
AV1 has three profiles, Main, High, and Professional. According to AOM documentation, “[t]he Main profile supports YUV 4:2:0 or monochrome bitstreams with bit depth equal to 8 or 10. The High profile further adds support for 4:4:4 bitstreams with the same bit depth constraints. Finally, the Professional profile extends support over the High profile to also bitstreams with bit depth equal to 12, and also adds support for the 4:2:2 video format.” There are also 14 levels that define playback capabilities from 426×240@ 30 fps to 7680×4320@120 kbps.
Interestingly, Roku doesn’t identify the supported AV1 profile or level for the Roku Ultra. Neither does Samsung, though their Kizen Smart TV specs do define supported AV1 resolutions and frame rates for the various models, which almost certainly relates to the supported levels.
The vast majority of AV1 encodes appear to use the Main profile. For example, the FFmpeg libaom AV1 Encoding Guide doesn’t mention profiles, though you can set them with -profile switch. According to the FFmpeg documentation, AV1 “defaults to using the profile which matches the bit depth and chroma subsampling of the input.” So, if you’re transcoding the typical H.264 mezzanine file, FFmpeg should choose the Main profile automatically.
If you’re attempting to produce HDR10+ HDR output with AV1, you may need to manually set the profile and level. Otherwise, unless you’re a hardware developer or are really pushing the resolution / frame rate / color depth / dynamic range spectrum, you probably don’t need to worry about AV1 profiles and levels.
Presets and Speed Controls
Like most codecs, all AV1 codecs have a profile or similar setting that lets you choose the optimum blend of encoding time and output quality for your AV1 encodes. This article discusses the various presets used by the four AV1 codecs tested and should provide useful insight into what the presets do and how they work.
At the present time, however, you’ll have to use a non-Wowza technology to distribute your AV1 encoded streams, since neither Wowza Streaming Engine or Wowza Streaming Cloud supports AV1 for either input or output.
In our next and final article, we discuss Versatile Video Coding, or VVC.