CMAF Is Halfway There, But That's Not Far Enough: Commentary
One of the Greek philosopher Zeno’s most famous paradoxes is the Dichotomy Paradox, also called the Infinite Halfway Theory. The concept states that if you keep getting halfway to a certain goal, you never arrive, because there are infinite halfway stops between Point A and Point B. There also seem to be infinite halfway stops between the multitude of adaptive streaming technologies and a single file format that can deliver all of them. This is true of the Common Media Application Format (CMAF), which gets us halfway there, but presents an almost predictable obstacle to finally arriving.
By way of background, the adaptive streaming world predominantly uses three technologies. According to Encoding.com’s “Global Media Format 2016” report, in 2015 HLS was used by 71 percent of the industry, Smooth Streaming by 19 percent, and DASH by 10 percent. In terms of media container format, Smooth Streaming and DASH (and HDS) use what’s called the fragmented MP4 container format (fMP4), while HLS uses the MPEG-2 transport stream container. A single package in fMP4 format can serve both DASH and Smooth Streaming clients with separate manifest files, which are tiny text files. This results in few additional storage costs. However, you couldn’t previously deliver files stored in fMP4 format to HLS clients. Instead, you must create and store MPEG-2 transport streams, doubling your storage and often encoding costs. Using two formats also diminishes the benefit of caching in your distribution infrastructure, which could substantially increase distribution costs.
At its 2016 Worldwide Developers Conference, Apple announced that HLS will support fMP4 files. Specifically, Apple agreed to support CMAF, which was authored by unlikely bedfellows David Singer from Apple and Kilroy Hughes from Microsoft. What exactly is CMAF? In MPEG-speak, it’s a standard for segmented media delivery formalized as MPEG-A Part 19, or ISO/IEC 23000-19. Specifically, CMAF uses the ISO Base Media File Format (ISOBMFF) container—with common encryption (CENC); support for H.264, HEVC, and other codecs; and WebVTT and IMSC-1 captioning. For compatibility, CMAF can be called by both HLS playlists (.m3u8 files) and DASH manifest files (.mpd files). For HLS delivery, CMAF will replace files currently packaged in the MPEG-2 container format. For DASH, CMAF will mean a very minor change to the existing ISOBMFF-based format.
So far, so good. The problem is that CMAF also enables two incompatible common encryption modes: cipher block chaining (CBC) for Apple’s FairPlay digital rights management technology (DRM), and counter mode (CTR) for PlayReady, Widevine, and other DRMs. Content encrypted with CBC can’t be decrypted by PlayReady- and Widevine-compatible clients, while content encrypted with CTR can’t be decrypted by FairPlay clients. So for content protected with studio-grade DRM, instead of two silos of content (one DASH, the other HLS), CMAF enables two silos of content (one encrypted with CBC, the other with CTR). This doesn’t feel like a lot of progress.
Of course, if DRM isn’t an issue, CMAF gets you all the way there, and you should be able to convert over to one file format. Unfortunately, not all HLS-compatible devices, or even iOS devices, will be able to be upgraded in the field, so you’ll have to assess how many of these clients you’ll strand if and when you switch over. The fact that 90 percent of Encoding.com’s ABR streams are not DASH tells us that producers are reluctant to abandon solutions that are already working.
What can you do? You can avoid the increased storage and encoding costs by dynamically packaging your content from MP4 files to DASH, HLS, and Smooth Streaming format via services like Microsoft Azure or Akamai, or products like the Wowza Streaming Engine or Elemental Delta, which I describe in another article. In short, there’s no immediate change.
Overall, CMAF is a step in the right direction, but sometimes getting halfway there feels like no progress at all. Think I’m overly pessimistic? Check back when Encoding.com issues its 2017 media report, and we’ll find out.
Author’s note: The author wishes to thank Christian Timmerer, CIO of Bitmovin, for verifying the technical details in this article.
[This article appears in the November/December 2016 issue of Streaming Media magazine as "Halfway There."]
Here are two strong reasons to attend Streaming Media West's pre-conference training sessions: a morning seminar on deploying CMAF and an afternoon session on video machine learning.
NexTreams Multimedia Systems Architect Iraj Sodagar explains the purpose of Common Media Application Format (CMAF) development for attendees at the Video Engineering Summit at Streaming Media West.
NexTreams Multimedia Systems Architect Iraj Sodagar defines the Common Media Application Format (CMAF) for attendees at the Video Engineering Summit at Streaming Media West.
Could there actually be one format to rule them all? Akamai becomes an early endorser of the Common Media Application Format, which is still a draft.
Companies and Suppliers Mentioned