Share this
Low-Latency Everywhere: How to Implement LL-HLS Across Platforms
by Pieter-Jan Speelmans on December 9, 2020
With the publication of the iOS 14 family last September, Apple has officially released LL-HLS support across its ecosystem. The Apple device family, which spans iPhones, iPads and Apple TVs has a significant market share. With about 25% of mobile devices worldwide running iOS, and this number reaching even more than 54% in North America according to Statcounter, there is no way around the Apple ecosystem.
The question at this point is not “Should I implement LL-HLS to satisfy my low latency needs", but “Can I leverage LL-HLS across other platforms as well”. Let’s dig into that!
How big is this Apple ecosystem really?
As mentioned, there are quite a lot of iOS devices around. With LL-HLS only being available on the iOS/iPadOS/tvOS 14 families, one could wonder when the critical mass of devices is large enough. In contrast to the Android family, Apple’s iOS family has a good reputation when it comes to updating the OS version on their devices. Devices often require updates, already pre-downloading the update and nagging to users who are trying to postpone. When we look at iOS 13 for example, about 92% of iOS devices sold over the last year were running iOS 13 at the end of June, which is less than one year after introduction. As a result, it is quite realistic that within a year, we are seeing similar numbers for iOS 14. In fact, according to MixPanel, you better have LL-HLS available today: more than 79% of all iPhones are already running iOS 14. Keeping in mind the release was only a few months ago, this is not bad at all.
Should we leverage LL-HLS on other devices?
To date, most people tend to leverage LL-DASH in order to reach the other 88% of the market. While Apple tends to discourage quite actively the use of MPEG-DASH on its own devices (and making it technically very difficult to do so), using LL-HLS is a must for most publishers. As a result, switching to an LL-DASH only solution is often not feasible. Compatibility between LL-HLS and LL-DASH can be achieved, as we showed during our webinar with Ateme and Akamai, but if possible, why not switch to a single solution entirely?
Thanks to LL-HLS’ backwards compatibility towards “legacy HLS” players, even players which haven’t been optimised for LL-HLS playback can play, albeit at higher latency, the same streams. This is very valuable as it allows you to reuse the same stream for both higher latency and low latency playback, regardless of the platform and availability of a low latency player. There will be no need to set up a separate stream to deliver to devices not compatible with LL-HLS.
This leaves us with the next question to answer, which is about the relevance of LL-HLS beyond the Apple ecosystem. For most of you, the list of relevant devices will be highly specific for your target market. We are seeing some big trends however. It makes sense to talk about the other part of the mobile market, with Android mobile devices having a huge footprint, even bigger than iOS’. There is also the smart TV market, and markets such as the desktop browser market (where Apple’s Safari only holds about 8%) can be quite relevant, and Apple’s Apple TV device for the big screen only covers about 8.7% of the connected TV devices market according to Conviva.
When digging into the consumption graphs, Conviva’s reports leave little to the imagination: when we are looking at the global viewing time of content across iPhones, iPads, Apple TV and the Safari browser, only about 12% of all content is being consumed on these devices, leaving about 88% of viewing time up for grabs on devices not supporting LL-HLS to date. We see three relevant families of devices here:
- HTML5 powered devices, spanning browsers as well as smart TVs, set-top boxes and others,
- devices running Android, Android TV and Fire OS, and
- Roku’s devices (and smart TVs running the same system).
Bringing LL-HLS to the web and HTML5 powered connected devices
When we are talking about HTML5 based devices, we are actually talking on a very large range of devices. Based on the latest usage statistics, about 38% of all viewing takes place on devices which are running HTML5 powered apps (not including mobile platforms). This is a big number. The form factors of HTML5 based devices also differ significantly. Where of course you have your classical desktop and mobile web browser usage, often forgotten segments are the smart TV ecosystem with platforms such as Samsung’s Tizen, LG’s webOS, Panasonic, Hisense VIDAA U and many more and the gaming console ecosystem where both PlayStation and Xbox are HTML5 powered platforms. Other notable ways to get on the first screen are HTML5 based STBs, Chromecast.
With the HTML5 ecosystem, rich APIs become available. The most notable APIs are Media Source Extensions (MSE) and Encrypted Media Extensions (EME). These APIs allow you to respectively access the hardware decoder and the in platform DRM system. Two crucial components to develop video applications for premium content.
Video player developers make use of the HTML5 APIs in order to implement their own streaming protocol handling. THEOplayer for example was the first HTML5 based video player to provide HLS support. When Apple announced LL-HLS, we implemented LL-HLS in our Web SDK as well, bringing the power of LL-HLS to the HTML5 based ecosystem.
It doesn’t stop there though. Other player vendors are also working towards support for LL-HLS. While this is still a moving target, none of the open source players seem to have implemented LL-HLS to date. The hls.js team is working towards a first version (hls.js 1.0.0), but this is at time of writing incomplete and still in alpha-phase. If all goes well, we should see a release in 2021 of their first version. Shakaplayer missed their roadmap which had support planned for their Q3 release, but to date this seems to be running hopelessly late, with a release for both LL-DASH and LL-HLS support still being under development. For those players however, you can perfectly run LL-HLS streams at a higher latency until they add support thanks to LL-HLS’ backwards compatibility.
All in all, the HTML5 ecosystem seems well equipped to support LL-HLS, and already does so today when using THEOplayer.
Tackling LL-HLS on Android and Fire TV
The Android device family is, similar to the HTML5 family, quite extensive and spans almost every form factor. It spans mobile devices running on Android, smart TVs running Android TV (Sony, Philips, …) and connected devices running the compatible FireOS (FireTV), or Android TV itself (various stick-like devices and STBs). Adding up all of the market share of these devices, you reach a solid 25%.
Often the reflex on the Android ecosystem is to use ExoPlayer. To date however, ExoPlayer didn’t complete support for LL-HLS. As ExoPlayer is used by almost every commercial video player vendor as well, most of them will need to wait until support is added there. In the meantime, you can use the feed at a higher latency, or use LL-DASH to get your low latency feed to Android.
At THEOplayer we maintain our own pipeline for Android and have no dependency on ExoPlayer to handle playback on the Android device family. Support for LL-HLS was added to THEOplayer early Q3, allowing you to run low latency streams with HLS (LL-DASH support was added already in 2019) across the ecosystem.
As a conclusion, seeing mass adoption of LL-HLS on Android will probably wait until the ExoPlayer team manages to merge in support (but it’s open source, so development at the “speed of open source” is to be expected). In the meantime, THEOplayer customers can already use LL-HLS on Android as full support is available there.
The pains of bringing LL-HLS to the Roku ecosystem
One thing to be said about the Roku ecosystem though, it’s big. Very big. Worldwide, about half of all connected TV devices are Roku devices. Keeping in mind they don’t play in some parts of the world, the market share is massive depending on the region. When comparing to others, the Roku ecosystem has the same size the Android ecosystem has (so if you’re not targeting it yet… why?).
So what about support for LL-HLS on this last remaining platform? The Roku ecosystem is a bit of an odd duck when compared to the others. There is no way to develop your own video processing pipeline on the device (apparently unless you buy a massive amount of devices, and even then it’s less than straightforward). As a result, you are forced to use the Roku native player.
To date, the Roku pipeline doesn’t support LL-HLS at low latency just yet. While no official public statements have been made on support, we can deduct a few things.
- One of those is timing of releases. Roku usually publishes updates to their devices in April and September.
- A second thing is the speed of updates spreading across the devices. As devices are automatically being updated, it is safe to say that when support is added, it will be available to your viewers closely after that (without any action on their side).
- As a third item, we can see Roku usually adopts new capabilities quite quickly (at least for a vendor which is in essence a hardware vendor). Initial support for LL-DASH came about one year after first vendors started providing support. I would take the bet Roku will come with LL-HLS support about one year after support for most other vendors is there.
This leaves us to the guessing game of when the support will actually be there. A reasonable guess would be to assume most vendors will announce LL-HLS support at NAB, which coincides with the April release of Roku. Personally, I think it would be early to hope for an April release of LL-HLS (but please surprise me!). More reasonable would be to assume it coincides with the IBC release in September, or (if we are unlucky) in the April 2022 release. While this might be bad news compared to the other platforms, you can still deliver the same LL-HLS feed to the platform, or you can look at one of the compatibility profiles for LL-HLS and LL-DASH to find a go-between.
Quick note on the (im)maturity of LL-HLS
So does this mean we can start using LL-HLS everywhere? Often questions rise such as: “What with DRM?” and “How about subtitles and alternative audio tracks?”. Well, these are good questions.
While using HLS everywhere is a decent option, LL-HLS is still relatively new and vendor support is not that broad yet. It is however to be expected that it is only a matter of time before you can really use LL-HLS at full feature everywhere.
While to date DRM support is still a feature not supported by most packagers. When we however combine the capabilities of LL-HLS with the industry trend of CBCS being used as an encryption schema across DRM systems, it becomes interesting. Vendors are working fast towards support of DRM in combination with LL-HLS. While nothing much needs to change on the packager side, it is important to ensure license servers can deliver DRM licenses fast: when a player is playing in low latency mode, buffers are very small and every delay in obtaining a valid license can incur a stall. If you add up that all viewers will request a new license at the same time when keys rotate, it’s important to test and scale for these scenarios.
From the subtitle and alternative audio track side, there is some good news. Most vendors are already working towards support for this. The trickiest bit is likely getting your captions in the packager: speech-to-text systems can require some time to come up with a first draft, and ideally you need to clean this out still. This likely takes more time than the target latencies you can achieve with LL-HLS, which is in the lower single digit seconds ballpark. It is of course easier if you know what will be said up front or if you are broadcasting a pre-recorded piece of content.
Key takeaways
LL-HLS is showing a lot of potential to bring low latency streaming in a single format across all platforms. While the entire ecosystem is still moving and vendors are working towards support, there is a very high potential for LL-HLS to become a leading protocol bringing low latency in the 2-8s range to all platforms. If you already want to start working with LL-HLS today, just reach out to our team: we have LL-HLS support across HTML5, Android and iOS ecosystems today already.
Questions about our LL-HLS? Contact our THEO experts.
Share this
- THEOplayer (45)
- online streaming (40)
- live streaming (35)
- low latency (32)
- video streaming (32)
- HESP (24)
- HLS (21)
- new features (21)
- THEO Technologies (20)
- SDK (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)
- client-side ad insertion (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)
- content integration (3)
- customer case (3)
- customise feature (3)
- dynamic ad insertion (3)
- scalable (3)
- server-side ad insertion (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 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)
- SGAI (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)
- company news (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)
- server-guided ad insertion (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)
- August 2024 (1)
- July 2024 (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)