CMAF
Single segments for both HLS and DASH delivery — eliminating duplicate storage.
What is CMAF
Common Media Application Format (CMAF) is an ISO/IEC standard (23000-19) that defines a single media segment format — fragmented MP4 (fmp4) — compatible with both HLS and MPEG-DASH manifests. Before CMAF, serving both HLS and DASH required encoding two separate sets of segments: .ts files for HLS and .m4s files for DASH. CMAF eliminates this duplication by producing one set of fmp4 segments that work with both an .m3u8 (HLS) and .mpd (DASH) manifest. CMAF also supports Common Encryption (CENC), enabling Widevine, FairPlay, and PlayReady DRM from a single encrypted source.
When to Choose CMAF
Choose CMAF when:
- You serve both HLS and DASH audiences — CMAF halves your segment storage by using one set of fmp4 files with two manifests.
- You need multi-DRM from a single encrypted source — CMAF with CENC supports FairPlay, Widevine, and PlayReady without separate encryption passes.
- You want low-latency delivery with chunked segments — CMAF chunked transfer encoding enables 2–5 second latency for both HLS and DASH.
Consider alternatives when:
- You only serve HLS (Apple-only audience) — Standard HLS with .ts segments is simpler and equally effective.
- You only serve DASH (no Apple devices) — Standard MPEG-DASH with .m4s segments avoids CMAF packaging complexity.
- You need progressive download — MP4 is simpler for single-file delivery without adaptive streaming.
Transcoding Demo
Source video
- URL: Enter URL for Source Video
- Upload File: Select a video you want to transcode
- Maximum file size: 5GB
Transcoding demo creates a small clip with a watermark. To test transcoding full files, Start your Free Plan for 500 credits.
Key Characteristics
| Type | Segment format + packaging standard |
| File extension(s) | Typically served as .m4s |
| Supported video codecs | H.264, H.265 (HEVC), AV1 |
| Supported audio codecs | AAC |
| DRM support | All — Widevine, PlayReady via Common Encryption (CENC) |
| Adaptive bitrate | Yes — via HLS or DASH manifest layer |
| Typical use case | Unified HLS + DASH delivery, multi-DRM from single encryption, storage cost reduction |
Browser & Device Support
| Platform | CMAF | MP4 | HLS | DASH |
|---|---|---|---|---|
| Chrome (desktop) | via MSE | via MSE | via MSE | |
| Firefox (desktop) | via MSE | via MSE | via MSE | |
| Safari (macOS) | via HLS | native | via MSE | |
| Edge | via MSE | via MSE | via MSE | |
| iOS Safari | via HLS | native | ||
| Android Chrome | via MSE | via MSE | via MSE |
How Qencode Handles CMAF
Qencode produces CMAF-compatible output by generating fmp4 segments with both HLS (.m3u8) and DASH (.mpd) manifests from a single encoding job. Enable CMAF by specifying the fmp4 segment format in your HLS or DASH output configuration.
Pair CMAF with DRM to encrypt once and serve to all DRM systems, or combine with Per-Title Encoding to optimize the bitrate ladder before CMAF packaging.
{
"query": {
"source": "https://your-storage.com/video.mp4",
"format": [
{
"output": "advanced_dash",
"create_m3u8_playlist": 1,
"stream": [
{
"video_codec": "libx264",
"resolution": 2160,
"optimize_bitrate": 1,
"framerate": "30",
"keyframe": "90"
}
],
"segment_duration": "6"
}
]
}
}
Copy this payload and use it with your API key to generate CMAF-compatible output from any video source.
CMAF vs. Separate HLS + DASH
| CMAF (unified) | Separate HLS + DASH | |
|---|---|---|
| Segment storage | 1 set of fmp4 | 2 sets (.ts + .m4s) |
| Storage cost | ~50% less | Baseline (duplicated) |
| Manifest support | Both .m3u8 and .mpd | Separate manifests per format |
| Complexity | Moderate | Higher (two pipelines) |
| Compatibility | Broad (requires fmp4-capable players) | Maximum (legacy .ts support) |