I was preparing for the codec discussion of my preconference sessions next week at Streaming Media East and visited www.caniuse.com to report codec availability. While I expected H.264 (96.96%) and VP9 (80.78%) to easily win, and they did, I was surprised to find AV1 availability at 32.46%, well ahead of HEVC at 16.71%. Digging into the numbers, I noticed that the site tracks availability in the browser, not on the system, which helped AV1 immensely but hurt HEVC (yes, boys and girls, royalty policies do matter). As you see in the figure below, AV1 numbers are exclusively from support in Firefox, Chrome, and Opera, none of which support HEVC.
HEVC proponents typically argue that hardware support is required for successful codec deployment. Perhaps not; as I reported here, Chrome and Firefox can play 1080p video on a single-CPU HP ZBook notebook using a reasonable 15-20% of CPU, and at least one major social media company already distributes AV1 streams to mobile viewers using decoders included in the company’s iOS and Android apps, which they obviously wouldn’t do if it drained their user’s battery life. Since these app-based decoders aren’t counted by CanIUse, AV1’s numbers are actually much higher (it’s a major social media company).
For perspective, AV1 still has minimal hardware support (if any) in smart TVs or OTT boxes where most of the world’s premium content is consumed, so while these numbers are a big deal for YouTube and Facebook, they have limited utility for most SVOD, AVOD, or TVOD services. Beyond the top tier of streaming producers, few can afford AV1’s 16x encoding cost. The bottom line is that as much as I enjoy poking the HEVC bear with click-bait headlines, AV1’s penetration in the browser has minimal market significance in the short term.
The news for HEVC wasn’t all bad; according to ScientiaMobile, HEVC support on mobile platforms is actually quite robust. While HEVC decode is very easy to access on iOS, however, the lack of HEVC decode in the Android browser makes it an app-only format on that platform.
Always a time-consuming process getting ready for these sessions, but hopefully that makes it worthwhile for the participants.
Here are my two pre-conference sessions next Monday. Tickets still available and all that. Hope to see you there.
W1. Introduction To ABR Production & Delivery
Monday, May 6: 9:00 a.m. – 12:00 p.m.
This course helps those new to streaming media get familiar with the relevant terms, concepts, and technologies. The session begins with a definition of terms like codecs, container formats, and adaptive bitrate streaming, as well as encoding concepts like bitrate control (VBR, CBR) and frame types (I, B, and P). Then it details the key H.264 encoding parameters that impact quality and compatibility. Next up is adaptive streaming, including a review of available ABR technologies like HLS and DASH, how to formulate an encoding ladder, and how to use multiple DRMs to protect premium content. Then we’ll review the technical requirements for ABR delivery to computers, smartphones and tablets, OTT devices, and smart TVs, and finish with a quick look at advanced codecs like HEVC, VP9, AV1, and VVC. You walk away knowing the technical requirements for delivering to all key platforms and an understanding of how to do so.
W4. Key Encoding Skills, Technologies, & Techniques
Monday, May 6: 1:30 p.m. – 4:30 p.m.
This session helps encoding professionals get up-to-speed on crucial encoding-related issues, technologies, and techniques. Topics include:
- Best high-level strategies for delivering to computers, mobile, smart TVs, and OTT (which ABR, codecs, and DRMs are supported by which platforms)
- Current status of the H.264, HEVC, AV1, and VVC codecs; who’s using and where; comparative quality and encoding/decoding performance, and deployment schemas (DASH? HLS?)
- How to deliver HEVC over HLS
- Current status of per-title technologies for VOD and live encoding
- How to build/analyze your encoding ladder using objective quality metrics
- Current status of CMAF and its implications for delivering a single set of files to HLS/DASH players
- How to encode/deliver with dynamic and static packaging