DEV Community

Cover image for What Is CMAF? Benefits, Limitations, and When to Use It
Maria Artamonova for Red5

Posted on Originally published at red5.net

What Is CMAF? Benefits, Limitations, and When to Use It

This guide answers the question “what is CMAF” by explaining how the format works, its benefits and limitations, and when to use it. It also compares CMAF with HLS, WebRTC, DASH, and fMP4.

What is CMAF?

CMAF, or Common Media Application Format, is an open standard for packaging video, audio, and text for adaptive bitrate streaming. It defines a common media container that can be used across modern streaming workflows, helping simplify distribution while improving efficiency.

Rather than introducing a new delivery protocol, CMAF focuses on how media is encoded and segmented so it can be reused across different playback environments. This makes it easier to manage assets, reduce operational overhead, and support scalable streaming on a wide range of devices. CMAF streaming is the delivery of live or on demand media packaged in CMAF containers through compatible protocols such as HLS and MPEG-DASH. CMAF is widely adopted across the streaming industry and serves as a foundation for low latency HTTP streaming when combined with compatible delivery modes and player support.

CMAF Origins: HTTP Live Streaming and HLS Redundancy

HLS and MPEG-DASH are two of the most widely used HTTP-based video streaming protocols for distributing live and on demand content. Delivering an HTTP stream involves dividing the video into small chunks that reside on an HTTP server. In this way, the individual video chunks can be downloaded by a video player via TCP. This allows the video to traverse firewalls easily, where it can be delivered as it is watched, thus minimizing caching.

However, there is a drawback involving the encoding of audio and video data. HLS traditionally uses TS containers to hold the muxed a/v data, while DASH prefers the ISO-Base Media File Format holding demuxed tracks.

In order to connect with a variety of devices, content owners must package and store two sets of files, each holding exactly the same audio and video data. This increases encoding and storage costs because Content Delivery Networks (CDNs) must process and store multiple formats containing the same content.

The creation of the CMAF came out of efforts to solve this redundancy problem. Proposed by Apple and Microsoft in 2016 and standardized by MPEG in 2018, CMAF is a standardized container designed to hold video, audio, or text data that is deployed using HTTP based streaming protocols: HLS or MPEG-DASH.

Bitmovin provides the following definition:

CMAF defines the encoding and packaging of segmented media objects for delivery and decoding on end-user devices in adaptive multimedia presentations. In particular, this is (i) storage, (ii) identification, and (iii) delivery of encoded media objects with various constraints on encoding and packaging. That means CMAF defines not only the segment format but also codecs and most importantly media profiles (i.e., for AVC, HEVC, AAC).

The advantage of the Common Media Application Format is that the same CMAF segments can be referenced by HLS playlists and DASH manifests. CDNs can store one set of files for both video delivery workflows, improving cache efficiency while reducing storage costs.

How CMAF Works

CMAF defines how media is encoded, segmented, and packaged so it can be delivered and decoded consistently across adaptive streaming systems. Content is organized into CMAF Presentations, which contain time-aligned Switching Sets made up of one or more Tracks encoded at different bitrates, resolutions, or qualities. These aligned CMAF Switching Sets support multiple bitrates and allow playback devices to adapt to network conditions without disrupting audio or video continuity.

CMAF media is delivered as addressable objects such as Fragments, Segments, and Chunks, but CMAF itself does not mandate a specific manifest format or delivery protocol. This separation allows the same encoded media to be used with different playback systems while maintaining consistent decoding behavior.

CMAF also supports encrypted media through Common Encryption (CENC), helping compatible workflows accommodate DRM systems such as FairPlay, PlayReady, and Widevine. However, DRM compatibility still depends on the selected encryption scheme, player, platform, and delivery workflow.

For low latency use cases, CMAF supports chunk-based delivery, where fragments are divided into smaller chunks that can be encoded, delivered, and decoded incrementally before a full segment is complete. This enables just-in-time playback while remaining compatible with standard HTTP delivery and CDN workflows.

How Does It Reduce Latency?

In actuality, CMAF containers are not able to reduce latency by themselves. Instead, a low latency mode (known as Low Latency CMAF, or Chunked CMAF) must be configured.

If you can’t tell by now, this is the really technical part so feel free to skip ahead if so inclined.

Chunked CMAF divides each container into smaller sections. Listing them from biggest to smallest: CMAF Container > Segment > Fragment > Chunk. Each chunk is defined as the smallest referenceable unit that contains at least a moof and mdat atom. One or more chunks are combined together to form a fragment which in turn can be merged into a segment.

In order to transmit each CMAF Segment, a POST request containing a CMAF Header is sent to the ingest origin server. Immediately after each CMAF Chunk completes encoding and packaging, it is sent through HTTP 1.1 chunked transfer encoding. This means that each segment can be progressively delivered as each chunk is ready rather than waiting for the entire segment to load before it can be sent out.

As an example, if the encoder is producing 4-second segments with 30 frames per second then it would make a POST request to the origin every 4 seconds and each of the 120 frames would be sent using chunked transfer encoding.

Then, the chunks ingested into the origin are delivered over HTTP chunked transfer encoding to a CDN where Edge servers make them available to the players which will eventually display the media. In order to retrieve the segment, the player uses the manifest or playlist associated with a stream to establish a connection with the correct Edge and then it makes a GET request.

What Are the Results?

Laboratory tests with CMAF have achieved end-to-end latencies as low as 600ms. However, results in the real world, away from the lab’s controlled environment, are less impressive. Current proof-of-concepts deployed over the open internet have shown a sustainable Quality of Experience (QoE) only when the end-to-end latency is around 3 seconds.

This increase is due in part to the fact that it requires many small chunks of 250 milliseconds. This would add to the number of HTTP calls happening (at least four per second), create higher bandwidth video, and increase server load; all of which add latency. These trade-offs show why streaming performance depends on both available network capacity and delivery delay; see our guide to bandwidth vs latency.

It should also be noted that CMAF creates problems for consistent stream quality, specifically in regards to adaptive bitrate, because of the way current algorithms estimate throughput.

Is a 3-Second Latency Good Enough for Real-Time?

Definitely not. While CMAF shows improved latency over vanilla HLS and DASH, it is still not low enough to enable fully interactive live video experiences.

As we’ve mentioned before, you can only have real-time streaming if the latency is under 500 milliseconds. In today’s world of instant communication and information, every second (and partial second) counts. Drone surveillance, social media chatting, live auctions, broadcasting live events among many other use-cases, all require real-time latency.

Benefits and Limitations of CMAF

CMAF streaming allows compatible HLS and MPEG-DASH workflows to use the same media files instead of storing separately packaged copies. This simplifies the encoding and delivery process, reduces storage costs, and supports adaptive bitrate delivery across multiple platforms and devices.

Chunked CMAF can also reduce video latency by delivering smaller video segments before a complete segment is available. However, low latency performance depends on compatible encoders, CDNs, players, codecs, and playback devices.

Use CMAF when efficient large-scale video streaming and compatibility with HLS and MPEG-DASH are priorities. For interactive applications requiring sub-second latency, WebRTC or another real-time technology is generally more appropriate. Common CMAF use cases include live sports, news, live commerce, online auctions, and large-scale events where viewers need lower latency but do not require fully interactive communication.

How CMAF Compares to HLS, WebRTC, DASH, and fMP4

CMAF vs HLS

The decision ultimately comes down to compatibility versus efficiency. Choose HLS if you need the broadest possible device support and highly reliable delivery across existing platforms. Choose CMAF if you want to standardize your media format, reduce duplicate encodes, and enable lower-latency HTTP streaming without abandoning HLS delivery. CMAF works alongside HLS, improving how media is packaged while HLS continues to handle distribution and playback.

CMAF should also not be confused with Low-Latency HLS (LL-HLS). CMAF defines how media is packaged, while Low-Latency HLS extends the HLS delivery protocol to reduce latency. Low-Latency HLS commonly uses CMAF-compatible fragmented MP4 segments.

CMAF vs WebRTC

In practice, the choice comes down to scale versus immediacy. CMAF excels at delivering the same high-quality stream to massive audiences efficiently. WebRTC excels at keeping participants synchronized in real time, enabling interaction that buffered streaming protocols cannot support.

If you want a deeper technical breakdown of latency, scalability, infrastructure requirements, and real-world use cases, read our CMAF vs WebRTC comparison blog.

CMAF vs DASH

The distinction here centers on packaging versus delivery. Choose MPEG-DASH if you need a flexible, standards-based streaming protocol with broad support across platforms and devices. Choose CMAF if you want a single, standardized media format that can be reused across DASH and other HTTP streaming workflows to reduce complexity and storage overhead. CMAF complements DASH by defining how media is packaged, while DASH focuses on how that media is described, delivered, and played back.

CMAF vs fMP4

The difference here lies between a file format and a complete packaging standard. Choose fragmented MP4 if you simply need a container format for segmented media. Choose CMAF if you need a standardized way to package fMP4 with defined constraints that enable interoperability, adaptive switching, and low-latency streaming. CMAF builds on fMP4 by adding rules and profiles that make fragmented media work consistently across streaming platforms and players.

FAQs

What does CMAF stand for?

CMAF stands for Common Media Application Format. It standardizes how video, audio, and text are packaged for adaptive bitrate streaming.

Is CMAF a streaming protocol?

No. CMAF is a media packaging format rather than a streaming protocol. HLS and MPEG-DASH can deliver CMAF-packaged media.

What is the difference between CMAF and HLS?

CMAF defines how media is packaged, while HLS defines how media is described and delivered. HLS playlists can reference CMAF segments.

Does CMAF reduce streaming latency?

CMAF alone does not reduce streaming latency. Chunked CMAF enables lower latency delivery by making encoded chunks available before the complete segment is finished.

What is the difference between CMAF and fMP4?

CMAF uses fragmented MP4 as its underlying container structure but adds media profiles and interoperability requirements for consistent playback across compatible streaming platforms.

Conclusion

When asked what is CMAF, the short answer is that it simplifies how streaming media is packaged and delivered at scale. It improves efficiency and latency compared to traditional HTTP streaming, but it is not intended for fully interactive real-time experiences. For CMAF-based delivery over MOQ (Media over QUIC), the CMAF-Compliant MOQT Streaming Format (CMSF) provides capabilities such as native DRM support, although it typically has higher latency than the Low Overhead Container (LOC). Learn more in “CMSF vs. CMAF: What’s the Difference for Video Streaming?”.

Top comments (0)