The Bitmovin Cloud Encoding Service now supports MPEG-CENC ClearKey offering you a free alternative to proprietary DRM services.
At Bitmovin we are constantly improving our services and adding features requested by our customers. Now we’re proud to present the support of MPEG-CENC ClearKey encryption. Since we already support all of the most important DRM systems such as Widevine, PlayReady and FairPlay, ClearKey is the next logical step.
MPEG-CENC ClearKey provides basic encryption of your content and is a viable option if you do not want to pay for the use of a full DRM service. You should keep in mind that this kind of encryption does not provide the same security level as if using a DRM system.
Encoding & Packaging for MPEG-DASH Format
All you need to do is add the ClearKeyEncryptionConfig to the encoding job as shown in the following PHP API client example:
$clearKeyEncryptionConfig = new ClearKeyEncryptionConfig(); $clearKeyEncryptionConfig->key = '100b6c20940f779a4589152b57d2dacb'; $clearKeyEncryptionConfig->kid = 'eb676abbcb345e96bbcf616630f1a3da'; $clearKeyEncryptionConfig->method = DRMEncryptionMethods::MPEG_CENC; $jobConfig = new JobConfig(); ... $jobConfig->manifestTypes = ManifestTypes::MPD; $jobConfig->speed = JobSpeedTypes::PREMIUM; $jobConfig->drmConfig = $clearKeyEncryptionConfig;
Find the full example at createClearKeyEncryptionJob.php.
Encoding & Packaging for Progressive MP4 File
We also support a workflow to create an encrypted progressive MP4 file through our REST API or one of our API Clients. Beside other use-cases, such files can be directly used in combination with a Marlin DRM solution (as provided by our partner ExpressPlay) for DRM protected offline playback.
Creating the encrypted MP4 file the workflow is a bit different:
- Create an MPEG-DASH encoding job without encryption to generate unencrypted MPEG-DASH content
- Trigger our transmux service to generate a progressive MP4 file out of the MPEG-DASH content with encryption
The following PHP API client example shows how to start a transmuxing with encryption:
$job = bitcodin\Job::get($jobId); // select the audio and video representations that will be used for the transmuxing */ $videoRepresentationId = $job->encodingProfiles->videoStreamConfigs->representationId; $audioRepresentationIds = array( $job->encodingProfiles->audioStreamConfigs->representationId ); $outputFilename = "transmuxed_and_encrypted_video.mp4"; $key = "YOUR_KEY"; $kid = "YOUR_KID"; $encryptionConfig = new \bitcodin\TransmuxEncryptionConfig($key, $kid); $transmuxConfig = new bitcodin\TransmuxConfig($jobId, $videoRepresentationId, $audioRepresentationIds, $outputFilename, $encryptionConfig); $transmuxing = bitcodin\Transmuxing::create($transmuxConfig);
Find the full example at createTransmuxingWithEncryption.php.
Support for DRM Systems
Of course we also support encoding and packaging for the following DRM systems:
- Widevine: Widevine is a Hollywood grade DRM technology initially developed by Widevine Technologies and acquired by Google in 2010. Widevine is natively supported on a broad range of devices and browsers such as Google Chrome Browser, Android, Chromecast, etc.
- PlayReady: Microsoft released PlayReady in 2008 and it’s one of major DRM systems out in the market with broad device support, sophisticated features and has been used at scale already by many events such as the Olympics in Sochi, Russia.
- Fairplay: Fairplay is specifically designed for Apple HTTP Live Streaming (HLS) with Apple playback devices such as iPhone, iPad, Apple TV and Mac OS X. Fairplay is also used as Content Decryption Module (CDM) of the Safari browser. This enables HTML5 native playback of DRM encrypted Fairplay streams without plugins in Safari.
More information can be found in our comprehensive DRM Setup Guide.
We are happy to help you with MPEG-CENC and ClearKey DRM encryption but also with using a DRM system. Just drop us a line on our contact page.