Understanding CMAF (Common Media Application Format)
Common Media Application Format (CMAF) is basically a new format to simplify the delivery of HTTP-based streaming media.
Join the DZone community and get the full member experience.
Join For FreeThe need for low latency solutions started to increase with Adobe’s abandonment of support for flash players, ie RTMP. This is a very important development for us because it is our duty to meet your every need. In this article, we will provide detailed information about CMAF, which has become increasingly popular.
What Is CMAF (Common Media Application Format)?
Common Media Application Format (CMAF) is basically a new format to simplify the delivery of HTTP-based streaming media. It is an emerging standard to help reduce cost, complexity, and provide latency around 3-5 secs in streaming.
The Emergence of CMAF
As you know, Adobe will stop supporting Flash player at the end of 2020. As a result of the declining status of RTMP, other HTTP-based (Hypertext Transfer Protocol) technologies for adaptive bitrate streaming have emerged. However, different streaming standards require different file containers. Such as while MPEG-DASH uses .mp4 containers, HLS streams are delivered in .ts format.
Therefore, every broadcaster who wants to reach a wider audience must encode and store the same video file twice, because encryption creates completely different groups of files.
These two versions of the same video stream should be made either in advance or instantly. Both of these procedures require additional storage and processing costs.
Apple and Microsoft suggested Moving Pictures Expert Group to create a new uniform standard called Common Media Application Format (CMAF) to reduce complexity when transmitting video online.
Why Do We Need CMAF?
Live video streaming requires many technical processes. And a variety of codecs, media formats, protocols, and more add to the complexity. Above all, compressing files in different media formats makes this already difficult and complex process slower and more expensive.
As we said above, to reach a wider audience base, broadcasters need to create multiple copies of each stream file in different file containers.
So these same files reduce productivity by nearly double the cost of packaging, storing, and competing with each other on CDN servers.
Let’s look at what Akamai said about this:
“These same files, although representing the same content, cost twice as much to package, twice as much to store on origin, and compete with each other on Akamai edge caches for space, thereby reducing the efficiency with which they can be delivered.”
The importance of CMAF comes into play here. As a standard streaming format across all platforms, it helps us with single-approach encoding, packaging, and storage. So, Common Media Application Format makes the video streaming process much cheaper and less complicated.
Shortly, With CMAF streaming, you have one set of audio/video files in a fragmented MP4 format with very lightweight manifest files for all four adaptive bitrate (ABR) formats. Hypothetically, this cuts encoding and storage costs by 75% and makes your caching much more efficient.
CMAF replaces these four sets of files with a single set of audio/video MP4 files and four adaptive bitrate manifests. Source: Streaming Media
How Does CMAF Work?
Before CMAF, Apple’s HLS protocol used the MPEG transport stream container format or .ts (MPEG-TS). Other HTTP-based protocols such as DASH used the fragmented MP4 format or .mp4 (fMP4). Microsoft and Apple have agreed to reach a wider audience through the HLS and DASH protocols using standardized transport container in the form of fragmented MP4. The purpose is to distribute content using mp4 only. CMAF has 2 encoding ways, chunked encoding and chunked transfer encoding to lower the latency. This process makes it possible to break the video into smaller chunks of a set duration, which can then be immediately published upon encoding. That way, near-real-time delivery (3-5 seconds) can take place while later chunks are still processing.
Advantages of CMAF Streaming
CMAF streaming technology is one of the easiest ways to reduce streaming latency and complexity of streaming. CMAF streaming helps us with;
- Cutting costs
- Minimizing workflow complexity
- Reducing latency
Let’s now compare the two solutions to live streaming.
CMAF vs WebRTC
In Other words low latency vs ultra low latency. Ant Media Server right now supports both LL(CMAF) and ULL(WebRTC). Here is some basic information about these technologies. CMAF provides low latency(3-5 secs) in live streaming, on the other hand, WebRTC provides Ultra Low Latency(0.5 secs) in live streaming. Then which one is good for your streaming project, CMAF streaming, or WebRTC streaming?
Which one to use?
Both technologies have advantages and disadvantages. We talked enough about CMAF. You can learn more about WebRTC in this article. You can pick the correct one according to your use case. CMAF is good if there is no interactivity between broadcasters and viewers. It’s easier to scale with CMAF with CDNs. It’s not much affected by instant network fluctuations because latency is about 3-5 seconds. On the other hand, it’s good to use WebRTC if there is interactivity between broadcasters and viewers. You need to manage the edge WebRTC servers to scale. It’s affected by instant network fluctuations(jitter, congestion) because it’s about 0.5 secs latency.
Published at DZone with permission of Hamit Demir. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments