• BuyDRM_SupportingCMAFUpdtes_MultiPack_1920x450
  • BuyDRM_SupportingCMAFUpdtes_MultiPack_768x430
  • BuyDRM_SupportingCMAFUpdtes_MultiPack_372x300

Supporting CMAF with Updates to the KeyOS MultiPack Utility and KeyOS MultiPack Plug-in for Wowza Streaming Engine

Posted by Roman K. on Nov 10, 2020 9:00:00 AM

Today, we have some exciting news to share with all our customers, partners, and the DRM community at large….. an update that will reduce your storage costs, processing costs, and help you provide a better user experience for your end-users. Before we dive into the product announcements, let’s set the stage with a little history and background to CMAF and CENC, shall we?

CMAF, CENC, CBCS, and CTR – What’s with the alphabet soup?


Why is CMAF Support Critical to DRM?

MPEG DASH and Apple’s HLS are the dominant streaming protocols for delivering Adaptive Bitrate (ABR), segmented content over the Internet.

In the past, if a content provider wanted to stream using both MPEG-DASH and HLS, it meant that they needed to store their assets in the MPEG-TS (Transport Stream) container format for HLS and mp4 format for MPEG-DASH (well, DASH does support TS files, but it is seldom ever used).

What did this mean in terms of cost and workflow changes?

To answer this question, let’s assume that you had to deliver an asset with ten renditions (bitrate and resolution combinations) using both DASH and HLS. Not having a common container format meant that you needed to store each of the ten renditions as both a TS and an mp4 file.

So, you incur twice the storage and processing costs -- which is not great news. And these costs get troublesome as you start streaming larger resolutions such as 1080p, 4K, UHD, etc.

Also, in addition to the increased storage costs, CDN caching becomes inefficient.


Well, if a user consuming the DASH stream and a user consuming the HLS stream both request the same segment of the video, your CDN provider has to store two copies of the same segment because of the different container formats used by DASH and HLS. If it becomes expensive for the CDN providers to cache your content, it’s quite likely they’ll pass the costs down to you!

As a solution to the above-mentioned problems, in 2016, the CMAF (Common Media Application Format) specification was created, which specified that media could be stored in the fragmented mp4 container format (fmp4/ISOBMFF, or ISO/IEC 14496-12:201).

Apple announced support for the fmp4 file format in the WWDC 2016, and along with DASH’s support for fmp4, it meant that an asset could now be stored in a single file format and streamed using DASH and HLS.

While this meant that storage costs would potentially reduce, there was a cog in the wheel when it came to CMAF’s encryption recommendations.

The CMAF specification states that “Encrypted track sample data in a CMAF SHALL use an encryption scheme defined in CENC Section 4.2.”.

The CENC specification goes on to say that videos can be encrypted using cenc (AES-128 CTR) or cbcs (AES-128 CBC) cipher block modes. (CTR stands for Counter, and CBC stands for Cipher Block Chaining).

Since CENC did not advocate a single encryption mode for AES-128, it meant that DRM providers could choose any flavor of AES-128 cipher block modes leading to a fragmented eco-system.

An eco-system, where despite using CMAF you had to produce multiple variants of your media to support multi-DRM.

To drive home this point, here is what the situation looks like at the time of writing this blog –

Streaming Protocols

    • With CMAF supports both AES-128 CTR cenc and AES-128 CBC cbcs modes.
    • Without CMAF supports only AES-128 CTR cenc mode.
  • HLS supports only AES-CBC cbcs mode (whether you use CMAF or not).


  • Apple FairPlay supports only AES-CBC cbcs mode
  • Widevine and PlayReady support both AES-128 CTR cenc and AES-128 CBC cbcs modes.

It looks confusing, right?

But, if you look at the options above, you can see a path to a unified, unfragmented, streaming solution.

If you create a single set of files using CMAF and encrypt them using AES-128 CBCS mode, then you can use this single set of files to stream your content using DASH and HLS with Widevine, PlayReady, and FairPlay DRM.

And this unification is what BuyDRM has achieved and is proud to announce.

Our latest product update provides universal CBCS support for CMAF.

This means that you can create a single encrypted file using the fMP4 container format, package it with the AES-128 CBCS, and then encrypt it for both HLS and MPEG-DASH.

The benefits of doing this are massive.

  • Your storage costs will reduce considerably (compare with creating multiple versions of the same file)
  • You now have a simplified workflow at your disposal.
  • You will see an improvement in CDN caching because both HLS and DASH streams now refer to the same underlying fmp4 media files.

To see our earlier articles on CMAF support, please read [1] and [2].

This is not all – here are the other updates to our KeyOS MultiPack Utility and KeyOS MultiPack Plug-In for Wowza Streaming Engine.

KeyOS MultiPack Utility

BuyDRM’s KeyOS MultiPack Utility enables in-network, on-premise, in-cloud support for encryption for a broad array of popular consumer formats with widely-supported commercial DRMs. The KeyOS MultiPack Utility can be installed on hardware and in a network and location of your choice. 


With version 1.2.1- of the KeyOS MultiPack Utility release, we are announcing support for producing a single CBCS encrypted source (using the ISOBMFF or fmp4 file format), which can then be packaged into HLS, or MPEG-DASH. The result is a reduction of your storage costs and an improvement in caching due to the use of a single source file with multiple manifests to support different streaming protocols.

In addition, we are announcing full support for Widevine signaling for HLS files. This feature addition helps you stream using the HLS protocol to devices that support Widevine DRM.

Again, like the CMAF support, we just announced, supporting Widevine for HLS is a step towards a simpler, more efficient workflow with reduced storage costs and increased caching efficiency.

KeyOS MultiPack Plug-In for Wowza Streaming Engine

As you probably already know, you can use BuyDRM’s KeyOS MultiPack plug-in with Wowza’s Streaming Engine. You can learn more about this on our blog, in Wowza’s docs, and in our webinar.


With this product update, BuyDRM’s KeyOS MultiPack Plug-In for Wowza’s Media Engine now supports all the streaming protocols and formats supported by Wowza, which are – MPEG DASH, HLS, Microsoft Smooth Streaming (MSS), and CMAF compatible output with AES-128 CTR encryption (Widevine/PlayReady). CMAF HLS w/ FairPlay is not yet supported by Wowza.

As an extension to this, when a user generates HLS outputs, they can now choose to use either Apple’s FairPlay Streaming or Microsoft’s PlayReady Envelope DRM.

In conclusion, this product update signals a massive win for us and our customers.

It showcases our commitment to providing the latest technological innovations for our customers with a singular focus – protecting their content and providing the best experience for our customers and their end-users.

If you have any questions, please fill out the contact form. We will get back to you as soon as possible.

Topics: DRM, CMAF, MultiPack

    Subscribe for Instant Notifications

    New call-to-action

    Posts by Topic

    see all