New in HTTP Live Streaming (HLS): Common Media Application Format

Video streaming over the Internet is becoming an increasingly popular and important service to provide. It is a convenient way for content owners and distributors to reach a wider audience compared to linear broadcasts.

However, the fragmentation of video streaming protocols makes it challenging to prepare content for delivery to different devices. For example, popular Samsung devices and browsers like Google Chrome and Mozilla Firefox support MPEG-DASH, while most of Apple's devices use HLS based streaming. DASH uses the fragmented MP4 format for delivery, while HLS is based on MPEG-2 Transport streams. To support both devices, content needs to be prepared for both MPEG-2 TS and fragmented MP4.

Furthermore, minor deviations in codec/resolution settings, color profiles, Digital rights Management(DRM) can cause additional incompatibility. Based on these factors, content owners and distributors often need to prepare video streaming workflows with various codec settings, color settings, container formats, DRM etc. This leads to duplication of effort, increased storage and inefficient delivery. Based on this, on-the-fly packaging, manifest generation and DRM, as offered by Unified Origin, are becoming increasingly popular.

The wider media industry has also recognized this inefficiency, and Apple and Microsoft have started a common specification based on shared subsets of standardized technology, called Common Media Application Format (CMAF). It aims to make video streaming using different protocols easier in practice by using common underlying technologies, reducing duplicate efforts. This specification has been proposed in the Moving Picture Experts Group (MPEG), where it is reviewed and updated by a wide range of representatives from the industry, on track to become an international standard.

In this blog, we try to summarize the scope of CMAF and the implications it has on typical video streaming workflows.

What is the Common Media Application Format (CMAF)?

The CMAF specification defines the usage of a subset of commonly used standardized media technologies and profiles. These include ISOBMFF, MPEG-4 AVC, HEVC, AAC, VTT, and Common Encryption (CENC). Video streaming solutions based on these standardized technologies are already common. However, minor variations in practical solutions often require multiple encoding, packaging, storage and digital rights management (DRM). CMAF tries to reduce duplicate effort by restricting use of underlying technologies to a common shared subset. Perhaps the most remarkable advance in CMAF is that Apple has announced support for fragmented MP4 in its latest HLS versions. As Apple also shaped the CMAF specification, it is envisioned that CMAF can support both MPEG DASH and HLS streaming from a single source. To help you understand the implications to your video streaming workflow, we provide some further technical details on CMAF.

The technical scope of the CMAF specification can be organized in three main areas:

CMAF media encoding and mezzanine format
CMAF specifies media profiles with exact codec settings to use. This includes the codec and its profile, color subspace, bit-depth, resolution and frame/sample rate. The CMAF media profiles correspond to common industry practice. This exact definition aims to reduce incompatibilities in later stages.

CMAF media packaging
CMAF imposes the use of the fragmented MP4 format. Every media track is stored in a separate file (i.e. no multiplexing), in 2 second fragments and 8-10 second segments. In addition, CMAF specifies resource identifiers to make these directly addressable throughout the network. This definition will allow for consistent video presentations, that can be used by both MPEG DASH and later versions of HLS. CMAF may finally reduce the usage of the legacy MPEG-2 TS formats for Internet Video Streaming.

CMAF media presentation organization
CMAF organizes tracks of the same media at different bit-rates in switching sets. Tracks in switching sets have common segment/fragment boundaries, enabling seamless bit-rate switching. Switching sets then compose selection sets for selecting different types of media content (e.g. audio language etc.), composing the CMAF presentation. The streaming manifest is not normatively defined in CMAF, but CMAF facilitates MPEG DASH and HLS 10 manifests.

What are the implications for your video streaming platform?

Apple has recently announced support for the fragmented MP4 format in HLS on iOS 10. Therefore a CMAF presentation can potentially support both MPEG DASH and HLS streaming. In this case, CMAF can realize its promise of encode once, package once, and store once when streaming both HLS and MPEG DASH. CMAF direct resource identifiers will then also improve caching in the network in such case. However, a key aspect to take into account is digital rights management (DRM), different encryption for HLS (CBC) and DASH, may still lead to incompabilty when trying to stream DASH and HLS from a single CMAF source.

How do I prepare my video streaming platform for CMAF?

Images above show different HLS playlists, with the references to .mp4- instead of .ts-segments on the right indicating compatibility with CMAF

Encoding
CMAF uses HEVC and AVC and AAC type encodings, minor or no changes to your encoding workflow will be needed, except conforming to the CMAF constraints on profile, resolution etc.

Packaging
Packaging requires CMAF conformant fragmented mp4 format. Packaging to this format is supported by the Unified Packager. Packaged files can be organized into a CMAF presentation.

Digital Rights Management (DRM)
The CMAF DRM is based on common encryption (CENC). This is not as common as the name suggests, it is supported in MPEG DASH, but various encryption schemes in use for Apple HLS do not support it.

Manifest generation
Unified Origin and Unified Packager will generate the HLS and MPEG DASH manifests for different streaming protocols based upon CMAF presentations.

Backward compatibility
The majority of Apple devices rely on older HLS versions based on MPEG-2 TS. The Unified Origin supports backward compatibility by trans-multiplexing fragmented MP4 to MPEG-2 TS on the fly. This way, Unified Origin provides the same benefits as CMAF for legacy content.

Summary

Unified Streaming Platform can be used to standardize on CMAF. It will also help you maintain backward compatibility and handle DRM solutions and Manifest generation on the fly. These features are outside the scope of CMAF but critical for any video streaming solution. Please do not hesitate to contact us for more information, we are continuously following the developments in the standards and updating our products to facilitate the latest specifications. Further, Unified Streaming Platform products have always shown to perform well in practice on wide ranges of different devices, based on the latest standards.