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 status of each DRM with our tools.
DRM | Status | Notes |
---|---|---|
Microsoft PlayReady | Working | Uses the PlayReady test server |
Google Widevine | In Progress | Key request and message signing are working, but license request during playback is failing. Users wishing to create signed requests will need to contact Widevine for a private test server and signing keys. |
CableLabs ClearKey | Working | CableLabs-specific implementation of ClearKey |
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 to support some additional DRMs. Also, we have added an EME-specific logging window to highlight the EME process as it takes place. Finally, we have improved support for playback of content that uses ISO Common Encryption.
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