Livery (a division of Ex Machina Group) has faced a number of challenges in providing large-scale, affordable, ultra-low latency video streaming solutions for interactive game shows with over 500,000 concurrent users.
In a two-part article, we will discuss the key decisions, changes, and improvements we’ve made to provide the best possible streaming solution using chunked CMAF technology. The first part of the article will introduce the technology and terminology related to ultra-low latency streaming, while the second part will focus on the technical challenges and implications of this type of streaming. Let’s dive in.
Latency: “In the video world, latency is the amount of time between the instant a frame is captured and the instant that frame is displayed on the end-users device.”
Livery works with the following thresholds:
- Legacy Latency, 10 or more seconds
- Low Latency, Between 10 and 5 seconds
- Ultra-low Latency, Between 5 and 1 seconds
- Sub-second Latency, Less than 1 second of latency
For context about how that applies to real environments, including:
- Facebook Live, 7–13 seconds
- Cable TV, 12 seconds
- Twitch stream, 10–30 seconds
- Voice chat, less than 1 second
There are several protocols that can be used to deliver low-latency video streams to the end user, including WebRTC, RTMP, HLS, and DASH.
- WebRTC is the fastest protocol, but it struggles with large numbers of concurrent users and spikes in traffic, and it requires a dedicated hosting solution.
- RTMP is an older protocol that requires Flash for web-based playback, which limits cross-platform and browser support.
- HLS and DASH can achieve a latency of 1 second with the help of CMAF (Common Media Application Format), although the default setup for these protocols can achieve a latency of 5 seconds.
- Websockets are another alternative, but they lack standardization.
The Livery improvements: introducing CMAF
CMAF (Common Media Application Format) is a container Livery developed that combines HLS and DASH into a single optimized format. It can be used in a low-latency mode that allows the encoder to push video chunks rather than relying on request-based segment delivery. To develop it, Livery had to figure out how to:
- Shift encoder priority from quality to latency optimization
- Push video in real-time to the CDN, instead of request-based
- Ensure the ingest server is close to the encoding facility
- Optimize the CDN mid-tier for fast transfers
- Ensure servers are close to the end user with a minimal number of hops
- Optimize buffer logic for frame-by-frame playback
- Implement Secure Sync logic
If this technology interests you, we recommend you read the more technical and in-depth full-length version of this article here.