Improve stream transfer with ultra low latency

Ultra low latency (ULL) streaming takes advantage of Akamai's chunked transfer encoding (CTE) feature as well as various Property Manager behaviors to reduce latency and decrease overall transfer time of live streams.

What is CTE?

With CTE, the encoder sends segment data to the player in a series of "chunks." The player doesn’t have to wait until the complete segment is available. Each chunk is preceded by its size in bytes and the transmission ends when a "zero-length" chunk is received.

Different components in a standard HTTP streaming platform might buffer a certain amount of data, and this buffering increases end-to-end latency. By setting up the streaming platform to accept chunks instead full segments, CTE can reduce this latency. CTE helps with these common latency issues in a streaming platform:
  • An on-premises encoder might post a segment to an ingest server only once that encoder has completely generated the segment.
  • By default, MSL lets a player download a video segment only after that segment has been completely uploaded.
  • A player might only use a segment once it fully downloads that segment. Plus, a player might only start playing a video after it downloads a certain number of segments. For example, HLS media requires a default download of three segments. (However, this is configurable.)
  • The Adaptive Media Delivery (AMD) configuration that's used to distribute your live content might buffer a certain amount of data.

CTE cues all of these components to start once a chunk of a segment has been "processed," eliminating a lot of this latency.

What's supported with CTE?

MSL provides the following features in support of CTE:
  • MSL supports CTE when stream data is pushed from a qualified encoder that uses CTE—for example, Media Excel.
  • MSL supports CTE when stream data is pulled from Akamai edge servers. This is automatically enabled.
  • MSL sends stream data in chunks as soon as they arrive from the upstream source. This happens instead of waiting for a segment to complete.
  • MSL supports HLS, DASH, and CMAF containers.
  • If the segment is complete, MSL returns the whole segment. If it is partial, it uses chunked transfer encoding. If the segment is not found, it returns an error.

Property Manager behaviors

To add ULL, you need to distribute your MSL streams using the Adaptive Media Delivery (AMD) product. AMD requires that you create a property configuration using Property Manager, and apply specific behaviors that determine how to deliver your streams. ULL requires that you configure the following behaviors in an applicable rule:

  • Segmented Media Delivery Mode - You need to enable ULL streaming in this behavior.
  • Segmented Media Streaming - Prefetch