Share this
The VP9 Breakthrough: VP9 Support Now Possible on Apple Devices and All Major Platforms
by Pieter-Jan Speelmans on April 19, 2023
Over the past week, during my early mornings at NAB, I’ve been exploring the potential of running the VP9 codec on all platforms. Despite my sleep-deprived, jet-lagged state, I’ve discovered some exciting news: it's now possible to use VP9 everywhere, making it possible to thank H.264 for its services and move on. Although I admit this article might come across as unorganized, my enthusiasm for the findings was too great to keep to myself.
AVC/h.264 has been a reliable codec for the past 19 years. Originally published on August 17, 2004, it remains the go-to choice for ensuring your content can play on any device. However, from an efficiency standpoint, it's outdated technology. Many improvements have been made since its inception.
The codecs that followed H.264, H.265/HEVC, and VP9, released on June 7 and 17, 2013, respectively, have yet to achieve widespread adoption. The main reason is that device coverage isn't as comprehensive, necessitating a dual codec approach that increases encoding and storage costs. In addition, H.265 is also plagued by licensing issues, making it unclear who needs to be paid to use it (and that’s not even mentioning the Sisvel VP9/AV1 claims).
The H.265 and VP9 generation of codecs boasts impressive gains in compression efficiency. One could wonder why they are not often used. While I prefer to stay away from the (almost religious) discussions on which codecs are best and what the exact efficiency gains are, H.265 and VP9 seem to have efficiency gains of around 40-50%. If you’re storing a large library of video or streaming huge quantities of it, it’s no surprise the potential cost reduction is massive. There will be an increase in encoding cost using a more modern codec (my numbers seem to indicate a 3x increase in compute requirements for VP9), but when you don’t have a long tail of rarely viewed and only briefly stored videos, this should be offset easily. Platform support has however always been a significant limitation, particularly for Apple devices such as iPhones with iOS.
Guided by some insights shared by industry friends, I discovered that HLS with VP9 has been enabled on iOS by Apple, although not publicly acknowledged. One of the clear hints can be found when analyzing YouTube’s traffic to iPhone devices. YouTube seems to stream HLS with VP9 to iPhone devices, playable in Safari's video element. While it’s unclear how long this has been going on, this observation triggered me big time.
Did Apple change its position on VP9? No, at least not publicly. Former TN2224, now known as the HTTP Live Streaming (HLS) Authoring Specification for Apple Devices, still mentions you should use h.264 and h.265 to operate on iOS. That’s where NAB is great. Over the past week, I’ve been able to discuss from various angles if this is just a fluke, or if we are seeing intentional behavior here. The only conclusion I can come to is that this is absolutely an intentional change. Given VP9 support in iOS is now a real thing, I see no reason to not leverage this.
Using this information as a guide, I dug deeper, discovering that VP9 in ISOBMFF/CMAF/MP4 containers works well with HLS in a native way. Additionally, VP9 support on iPadOS and macOS, though less straightforward than on iPhone, is still achievable with HLS. I was even able to implement this into our player product, resulting in stunning performance and the ability to play VP9 everywhere. To make things even better, I already implemented the HLS with AV1 combination in some forward compatibility for those platforms where AV1 is already enabled (Apple IS a part of AOM after all, and indications are good that support for this is coming as well, but I did not find a way to enable this on iOS… yet at least).
Furthermore, after running new builds of our player on different devices using our automated testing platform, I found that our current changes enable VP9 in HLS on Tizen and webOS. Indications are strong that we can extend this support to all older devices we support, including Tizen 2.3 (2015 TVs) and webOS 3.0 (2016 devices). It's not surprising that VP9 works flawlessly on other major platforms such as Android TV, FireTV, and Roku.
Based on my current observations, it's now possible to run HLS streams with VP9 in ISOBMFF on all major platforms supported by our player product. Given that we support nearly every relevant platform for the bulk of the streaming services out there, that’s pretty good. (Note to self, we should update Can I Use, which currently lists a support rate of "80.13% +17.21% = 97.34." where the 17.21% indicates only partial support on iOS for webRTC.)
Some further work I’m doing is validating all of this with DRM and perhaps pumping this into the HESP protocol to do VP9 in live with sub-second latency glass-to-glass. Indications are very good that this will work as well, and I expect to have an update here soon once I get the time to craft some streams.
I hope this article didn’t come over as too disorganized (but hey, I warned you at the start), but I must admit I’m quite excited about the findings here. Let’s thank H.264 for its great service over the past years and look towards finally using some more efficient encoding.
Share this
- THEOplayer (45)
- online streaming (40)
- live streaming (35)
- low latency (32)
- video streaming (32)
- HESP (24)
- HLS (21)
- new features (21)
- SDK (19)
- THEO Technologies (19)
- THEOlive (17)
- best video player (17)
- html5 player (16)
- LL-HLS (15)
- cross-platform (15)
- online video (15)
- SmartTV (12)
- delivering content (12)
- MPEG-DASH (11)
- Tizen (11)
- latency (11)
- partnership (11)
- Samsung (10)
- awards (10)
- content monetisation (10)
- innovation (10)
- Big Screen (9)
- CDN (9)
- High Efficiency Streaming Protocol (9)
- fast zapping (9)
- video codec (9)
- SSAI (8)
- Ultra Low Latency (8)
- WebOS (8)
- advertising (8)
- viewers expercience (8)
- "content delivery" (7)
- Adobe flash (7)
- LG (7)
- Online Advertising (7)
- Streaming Media Readers' Choice Awards (7)
- html5 (7)
- low bandwidth (7)
- Apple (6)
- CMAF (6)
- Efficiency (6)
- Events (6)
- drm (6)
- interactive video (6)
- sports streaming (6)
- video content (6)
- viewer experience (6)
- ABR (5)
- Bandwidth Usage (5)
- Deloitte (5)
- HTTP (5)
- ad revenue (5)
- adaptive bitrate (5)
- nomination (5)
- reduce buffering (5)
- release (5)
- roku (5)
- sports betting (5)
- video monetization (5)
- AV1 (4)
- DVR (4)
- Encoding (4)
- THEO Technologies Partner Success Team (4)
- Update (4)
- case study (4)
- content encryption (4)
- content protection (4)
- fast 50 (4)
- google (4)
- monetization (4)
- nab show (4)
- streaming media west (4)
- support matrix (4)
- AES-128 (3)
- Chrome (3)
- Cost Efficient (3)
- H.265 (3)
- HESP Alliance (3)
- HEVC (3)
- IBC (3)
- IBC trade show (3)
- THEOplayer Partner Success Team (3)
- VMAP (3)
- VOD (3)
- Year Award (3)
- client-side ad insertion (3)
- content integration (3)
- customer case (3)
- customise feature (3)
- dynamic ad insertion (3)
- scalable (3)
- video (3)
- video trends (3)
- webRTC (3)
- "network api" (2)
- Amino Technologies (2)
- Android TV (2)
- CSI Awards (2)
- Encryption (2)
- FireTV (2)
- H.264 (2)
- LHLS (2)
- LL-DASH (2)
- MPEG (2)
- Microsoft Silverlight (2)
- NAB (2)
- OMID (2)
- Press Release (2)
- React Native SDK (2)
- Start-Up Times (2)
- UI (2)
- VAST (2)
- VP9 (2)
- VPAID (2)
- VPAID2.0 (2)
- ad block detection (2)
- ad blocking (2)
- adobe (2)
- ads in HTML5 (2)
- analytics (2)
- android (2)
- captions (2)
- chromecast (2)
- chromecast support (2)
- clipping (2)
- closed captions (2)
- deloitte rising star (2)
- fast500 (2)
- frame accurate clipping (2)
- frame accurate seeking (2)
- metadata (2)
- multiple audio (2)
- playback speed (2)
- plugin-free (2)
- pricing (2)
- seamless transition (2)
- server-side ad insertion (2)
- server-side ad replacement (2)
- subtitles (2)
- video publishers (2)
- viewer engagement (2)
- wowza (2)
- "smooth playback" (1)
- 360 Video (1)
- AOM (1)
- API (1)
- BVE (1)
- Best of Show (1)
- CEA-608 (1)
- CEA-708 (1)
- CORS (1)
- DIY (1)
- Edge (1)
- FCC (1)
- HLS stream (1)
- Hudl (1)
- LCEVC (1)
- Microsoft Azure Media Services (1)
- Monoscopic (1)
- NAB Show 2016 (1)
- NPM (1)
- NetOn.Live (1)
- OTT (1)
- Periscope (1)
- React Native (1)
- Real-time (1)
- SIMID (1)
- Scale Up of the Year award (1)
- Seeking (1)
- Stereoscopic (1)
- Swisscom (1)
- TVB Europe (1)
- Tech Startup Day (1)
- Telenet (1)
- Uncategorized (1)
- University of Manitoba (1)
- User Interface (1)
- VR (1)
- VR180 (1)
- Vivaldi support (1)
- Vualto (1)
- adblock detection (1)
- apple tv (1)
- audio (1)
- autoplay (1)
- cloud (1)
- facebook html5 (1)
- faster ABR (1)
- fmp4 (1)
- hiring (1)
- iGameMedia (1)
- iOS (1)
- iOS SDK (1)
- iPadOS (1)
- id3 (1)
- language localisation (1)
- micro moments (1)
- mobile ad (1)
- nagasoft (1)
- new web browser (1)
- offline playback (1)
- preloading (1)
- program-date-time (1)
- stream problems (1)
- streaming media east (1)
- support organization (1)
- thumbnails (1)
- use case (1)
- video clipping (1)
- video recording (1)
- video trends in 2016 (1)
- visibility (1)
- vulnerabilities (1)
- zero-day exploit (1)
- January 2024 (1)
- December 2023 (2)
- September 2023 (1)
- July 2023 (2)
- June 2023 (1)
- April 2023 (4)
- March 2023 (2)
- December 2022 (1)
- September 2022 (4)
- July 2022 (2)
- June 2022 (3)
- April 2022 (3)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- November 2021 (1)
- October 2021 (3)
- September 2021 (3)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (8)
- April 2021 (4)
- March 2021 (6)
- February 2021 (10)
- January 2021 (4)
- December 2020 (1)
- November 2020 (1)
- October 2020 (1)
- September 2020 (3)
- August 2020 (1)
- July 2020 (3)
- June 2020 (3)
- May 2020 (1)
- April 2020 (3)
- March 2020 (4)
- February 2020 (1)
- January 2020 (3)
- December 2019 (4)
- November 2019 (4)
- October 2019 (1)
- September 2019 (4)
- August 2019 (2)
- June 2019 (1)
- December 2018 (1)
- November 2018 (3)
- October 2018 (1)
- August 2018 (4)
- July 2018 (2)
- June 2018 (2)
- April 2018 (1)
- March 2018 (3)
- February 2018 (2)
- January 2018 (2)
- December 2017 (1)
- November 2017 (1)
- October 2017 (1)
- September 2017 (2)
- August 2017 (3)
- May 2017 (3)
- April 2017 (1)
- March 2017 (1)
- February 2017 (1)
- December 2016 (1)
- November 2016 (3)
- October 2016 (2)
- September 2016 (4)
- August 2016 (3)
- July 2016 (1)
- May 2016 (2)
- April 2016 (4)
- March 2016 (2)
- February 2016 (4)
- January 2016 (2)
- December 2015 (1)
- November 2015 (2)
- October 2015 (5)
- August 2015 (3)
- July 2015 (1)
- May 2015 (1)
- March 2015 (2)
- January 2015 (2)
- September 2014 (1)
- August 2014 (1)