Developers

MPEG-CENC Widevine DRM in Bitmovin

Martin Smole
. 1 min read
widevine cenc drm

CENC, DRM and Widevine

CENC DRM protection is now supported by Bitmovin for MPEG-DASH content by using MPEG Common Encryption (MPEG-CENC) and Widevine Modular. MPEG-CENC is an encryption standard that is independent from DRM providers and allows the decryption of the same media file (encoded and encrypted once) using multiple DRM systems (Widevine, PlayReady, etc.) to support various client devices.
Widevine DRM with CENC

Encrypt your Content

The easiest way to encrypt your content is to start with one of our API clients. Currently, encryption is only supported through the API and examples are only implemented for the PHP and Python API clients. We will add comprehensive examples for all other API clients in the next in a few days.

API Client Examples

Let’s look at the example using the PHP API client. The important part here is to set the WidevineDRMConfig object providing your Widevine data. For testing you can also use the Widevine testing keys which we have used in our example below:

$widevineDRMConfig = new WidevineDRMConfig();
$widevineDRMConfig->requestUrl = 'http://license.uat.widevine.com/cenc/getcontentkey';
$widevineDRMConfig->signingKey = '1ae8ccd0e7985cc0b6203a55855a1034afc252980e970ca90e5202689f947ab9';
$widevineDRMConfig->signingIV = 'd58ce954203b7c9a9a9d467f59839249';
$widevineDRMConfig->contentId = '746573745f69645f4639465043304e4f';
$widevineDRMConfig->provider = 'widevine_test';
$widevineDRMConfig->method = DRMEncryptionMethods::MPEG_CENC;
$jobConfig = new JobConfig();
...
$jobConfig->drmConfig = $widevineDRMConfig;
$job = Job::create($jobConfig);

The parameters of the Widevine configuration have the following meaning:

  • requestUrl: This is your private Widevine license server URL.
  • signingKey: Replace this with the signing key you received from Widevine.
  • signingIV: Replace this with the signing IV you received from Widevine.
  • contentId: This ID is used to link your content to the generated keys in the Widevine key managment system. This is up to you or your licensing provider. You can choose any value you like.
  • provider: Also known as portal, owner or organization. You will get this value from Widevine. For testing you can keep the current setting.
  • method: Currently we only support MPEG-CENC.

Playback your Widevine DRM Encrypted Content in HTML5

To test your content you can go to our Bitmovin Player DRM demo page and paste the link to your MPD from your encoding job. When using the Widevine test keys, the license server URL does not need to be changed. If you are using your own keys you will have to enter your private license server URL (LA URL).
We are happy to help you with MPEG-CENC and Widevine DRM. Just drop us a line on our contact page.

Martin Smole

Martin Smole

Senior Engineering Director

Martin is responsible for the development and operation of the Bitmovin Encoding products for VOD and Live. His teams work to enable complex video encoding workflows for global premium media and technology companies like Red Bull Media House or the New York Times. He also manages collaborations with research partners like ATHENA to constantly incorporate new innovations to Bitmovins products.


Related Posts

- Bitmovin
Developers

Open-Source vs. Commercial Players: Understanding the True Cost of Ownership

Join the conversation