Best practices for ULL
Implement these best practices to get the most out of ultra low latency (ULL) streaming.
- Ensure that you access an ultra low latency (ULL) stream using only
/live-ullto achieve the best end-to-end latency.
- If you access a ULL-optimized stream using both a ULL optimized player (using
/live-ullURL) and a regular player (using the
/liveURL), ensure that the regular player does not access the partial segment.
- With a regular player and HLS streams, the player gets the playlist with segments that are fully uploaded to your origin.
- With a regular player and DASH streams, the player is more conservative in fetching the newest segment, so that the newest segment is always fully available.
Stable latency reduction with ULL-CMAF is only achieved if all of the following are in place.
- The content in the CMAF segment needs to be chunked encoded.
- The encoder adjusts its manifest or playlist production to accommodate and signal the usage of chunked encoding and early availability of the data.
- The encoder pushes content to the origin using HTTP 1.1 chunked encoding transfer.
- The CDN propagates this content all the way to the client using HTTP chunked encoding transfer at each step in the distribution chain.
- Make sure the following apply with the player:
- It needs to accurately time the request for the segment and request the segment within one segment duration of the live edge.
- It needs to decode the bit stream as it's received and it can't wait for "end-of-segment." Browser-based HTML5 players need to use the Fetch rather than the XHR API. This is because Fetch can read the response body while the data is still being downloaded.
- It uses a scheme to estimate throughput. This is because standard segment-timing techniques fail.
- It has buffer and adaptation logic to cope with very low buffers.
- It has a catch-up feature to support fluctuations in throughput.
- Also, see Ultra-Low-Latency Streaming Using Chunked-Encoded and Chunked-Transferred CMAF for more best practice information regarding CMAF.