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.
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.
Tags: API, apple http live streaming, bitcodin, Cloud Encoding, cloud transcoding, cloud video encoding, DRM, dynamic adaptive streaming over http, Encoding, Encoding Service, encryption, HLS, html5 drm, MPEG common encryption, MPEG-CENC, MPEG-DASH, Transcoding, video encoding, video encoding service, video transcoding, Widevine