This tutorial is based on this full example, which is using our Bitmovin PHP API client, however we do offer API clients in other languages as well. If you haven't created any encodings with our API clients yet, we recommend you to read the getting started guide called "Create an Encoding with our API" at first, before you continue.
Lets start with the preparation of required information we need in order to protect your content using MPEG CENC ClearKey Encryption.
$key = "0123456789abcdef0123456789abcdef"; $kid = "0123456789abcdef0123456789abcdef";
The parameters of the configuration have the following meaning:
- key: This is the common content encryption key
- kid: This is the common unique identifier for your content key in hex format
We will use this information to create a CENC DRM resource, which will be created for each fMP4 Muxing you want to be encrypted using MPEG CENC ClearKey Encryption. Further we have to provide a output location, where those encrypted segments should be stored at. Therefore, we don't provide the output location with the fMP4 Muxing, but with the CENC DRM resource.
$fmp4Muxing1080p = createFmp4Muxing($apiClient, $encoding, $videoStream1080p, null, null); $audioFmp4Muxing128 = createFmp4Muxing($apiClient, $encoding, $audioStream128, null, null); $cencDrmEncodingOutput1080p = createEncodingOutput($s3Output, $outputPath . 'video/1080p/dash/drm/'); $cencDrm1080p = createCencDrm($cencDrmKey, $cencDrmKid, array($cencDrmEncodingOutput1080p)); $videoFmp4Drm1080p = $apiClient->encodings()->muxings($encoding)->fmp4Muxing()->drm($fmp4Muxing1080p)->cencDrm()->create($cencDrm1080p); $audioCencDrmEncodingOutput128 = createEncodingOutput($s3Output, $outputPath . 'audio/128kbps/dash/drm/'); $audioCencDrm128 = createCencDrm($cencDrmKey, $cencDrmKid, array($audioCencDrmEncodingOutput128)); $audioFmp4Drm128 = $apiClient->encodings()->muxings($encoding)->fmp4Muxing()->drm($audioFmp4Muxing128)->cencDrm()->create($audioCencDrm128);
How can I play MPEG-CENC ClearKey content?
Now, that you are able to create this content, you most likely want to play it as well :) Therefore, please see our tutorial, how you can play MPEG-CENC ClearKey encrypted content with our Bitmovin Player