CMAF (Common Media Application Format)

Protocol

A standard that allows the same media segments to be used with both HLS and DASH manifests. Instead of encoding and storing two separate sets of segments (MPEG-TS for HLS, fMP4 for DASH), you encode once in CMAF-compatible fMP4 and create only different manifests. This halves storage costs and si...

Updated Apr 3, 2026

Full Explanation

Before CMAF, streaming meant encoding and storing your media twice. HLS needed MPEG-TS (.ts) segments, and DASH needed fragmented MP4 (.m4s) segments. Same video, two completely different container formats, doubled storage bills, and terrible CDN cache efficiency because every segment existed in two versions that never shared cache entries.

CMAF fixes this by standardizing on fragmented MP4 as the common container format. You encode your video once into fMP4 segments, then generate two lightweight manifest files: an .m3u8 for HLS clients and an .mpd for DASH clients. Both manifests point to the exact same .m4s segment files on disk. One set of segments, two protocols served. Your CDN cache hit ratio goes way up because there is only one version of each segment to cache.

CMAF also introduced low-latency chunked transfer encoding (CMAF-CTE). Instead of waiting for an entire segment to be encoded before making it available, the encoder can push small chunks (as small as a single frame) using HTTP chunked transfer. This enables sub-second latency for live streaming, which matters for sports, auctions, and interactive broadcasts.

Here is how the same segments get referenced by both protocols:

# HLS manifest (playlist.m3u8)
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-MAP:URI="init.mp4"
#EXTINF:4.0,
segment_001.m4s
#EXTINF:4.0,
segment_002.m4s

<!-- DASH manifest (manifest.mpd) -->
<SegmentTemplate
  initialization="init.mp4"
  media="segment_$Number%03d$.m4s"
  startNumber="1"
  duration="4" />

Both manifests reference the same init.mp4 and segment_XXX.m4s files. The CDN stores one copy, serves both protocols.

Examples

A live sports broadcaster encodes once to CMAF fMP4 segments and serves both Apple TV (HLS) and Android (DASH) viewers from the same CDN-cached segments, cutting their storage and egress costs in half compared to maintaining separate HLS/DASH pipelines.

Video Explanation

Frequently Asked Questions

A standard that allows the same media segments to be used with both HLS and DASH manifests. Instead of encoding and storing two separate sets of segments (MPEG-TS for HLS, fMP4 for DASH), you encode once in CMAF-compatible fMP4 and create only different manifests. This halves storage costs and si...

A live sports broadcaster encodes once to CMAF fMP4 segments and serves both Apple TV (HLS) and Android (DASH) viewers from the same CDN-cached segments, cutting their storage and egress costs in half compared to maintaining separate HLS/DASH pipelines.