A reference toolkit for creating premium, adaptive bitrate (ABR) content for playback using the latest HTML5 extensions. Media Source Extensions (MSE) allow Javascript applications to deliver individual buffers of audio, video, and data to the browser's media pipeline which enables more flexible playback of ABR content such as MPEG-DASH or Apple HLS. Encrypted Media Extensions (EME) allow Javascript applications to pass content license request/response messages between a DRM-specific Content Decryption Module (CDM) within the browser and a remote license server.
The current CableLabs reference tools are designed to generate content using a specific set of industry standards that we will think capture a large footprint of needs amongst the user community. We hope to expand the scope in the future to encompass additional codecs and container types.
- MP4 (ISOBMFF) Container
- AVC/H.264 Video Codec
- AAC Audio Codec
- MPEG-DASH Adaptive Bitrate Packaging
- ISO Common Encryption
See the latest documentation here
Our tools will include support for proprietary and open DRM systems as documentation and test servers are made available to us. Here is a table that indicates the current integration status of each DRM or licensing service with our tools.
DRM | Status | Notes |
---|---|---|
Microsoft PlayReady | Working | Uses the PlayReady test server |
Google Widevine | Working | Users will need to contact Widevine to setup their own license portal. |
CableLabs ClearKey | Working | CableLabs-specific implementation of ClearKey |
CastLabs DRMToday | Working | Support for PlayReady and Widevine (Access coming soon) |
Adobe Access/PrimeTime | Not Started | |
Apple FairPlay | Not Started |
For playback of encrypted DASH content using MSE/EME, we have augmented the dash.js player with support for some additional DRMs, improved support for playback of content that uses ISO Common Encryption, and support for multiple EME versions available on production browsers..
Our tools rely heavily on the following great open source and/or free library projects
- LibAV: transcoding and adaptive bitrate generation
- MP4Box: encryption and MPEG-DASH packaging
- x264: AVC/H.264 codec for video
- libfdk_aac: Fraunhofer FDK AAC codec for audio