In adaptive streaming, MPEG-CMAF chunking and transcoding are separate workflow stages. CMAF chunking packages encoded frames as fragmented MP4 segments for streaming. Transcoding re-encodes input media into different bitrates, codecs, or resolutions before chunking. Keeping these steps distinct ensures correct segment alignment, manifest generation, and predictable playback latency.
Core Function and Processing
MPEG-CMAF Chunking
CMAF chunking serves as packaging. It operates on a compressed stream (often H.264 or AAC, e.g., Annex B for H.264). Frames are packaged into short, independently decodable fragments inside an ISO Base Media File Format (ISOBMFF) container. Chunking creates initialization segments and media segments with timing and byte-range markers. This process does not change video or audio compression; it only alters segmentation and container structure.
Transcoding
Transcoding's core function is processing and re-compression. It takes an encoded input stream, fully decodes it to a raw or intermediate format, applies modifications (such as bitrate reduction, resolution scaling, or codec conversion), and then re-encodes it using a video codec. Its scope includes changing the fundamental characteristics of the media to create new renditions.
Input, Output, and Data Alteration
MPEG-CMAF Chunking
The input is a compressed elementary stream or mezzanine file. The output is a set of CMAF-compliant fMP4 segments. Extensions like .m4s, .cmfv, and .cmfa may be used, but are not mandatory; standard MP4 extensions are also valid and widely supported. Chunking is lossless for media quality; only container and segment boundaries change.
Transcoding
Transcoding accepts an already-compressed bitstream as input. The output is a new, independently compressed bitstream. This process is inherently lossy, as it introduces a new generation of compression artifacts. The output data is fundamentally altered in its size, structure, and visual fidelity compared to the input.
Impact on Latency and Workflow
MPEG-CMAF Chunking
Chunking is designed to minimize latency. By creating small, discrete chunks, it enables chunk-transfer encoding, where a segment can be transmitted the moment it is finalized, without waiting for a larger file to be complete. This is important for achieving low-latency in live streaming workflows, as it allows players to request the latest available chunk almost immediately.
Transcoding
Transcoding requires full decode and re-encode cycles and consumes substantial compute resources. In live workflows, this adds delay; specialized hardware and parallelization are needed to minimize end-to-end latency. For Video-on-Demand, transcoding can be performed offline, where latency is less critical.
Role in Adaptive Bitrate (ABR)
MPEG-CMAF Chunking
In ABR, CMAF chunking ensures that all video and audio segments across different renditions are temporally aligned. This means that chunk boundaries for a 1080p stream and a 360p stream occur at precisely the same time points. This alignment is a foundational requirement for seamless bitrate switching, as it allows a player to switch renditions at any segment boundary without decoding conflicts or playback glitches.
Transcoding
Transcoding is responsible for creating the different renditions that constitute the ABR ladder. It generates the various bitrate-resolution pairs (e.g., 1080p @ 4.5 Mbps, 720p @ 2.5 Mbps, etc.) from a single high-quality source. The transcoding process must ensure that the GOP structure and keyframe (IDR frame) intervals are consistent across all renditions to enable the segment alignment performed by the subsequent chunking stage.
Comparison Table
| Aspect | MPEG-CMAF Chunking | Transcoding |
| Core Function | Packaging and Segmentation | Re-compression and Processing |
| Input | Compressed Elementary Stream / Mezzanine File | Compressed Bitstream |
| Primary Role in ABR | Ensures Temporal Segment Alignment Across Renditions | Creates Multiple Bitrate/Resolution Renditions |
| Latency Impact | Enables Low-Latency Delivery Via Small Chunks | Introduces a Delay from Decode/Encode Cycles |
| Compute Load | Low (I/O and Packaging Overhead) | High (Complex Motion Estimation and Compression) |

