/mse-eme

Reference tools for creating and playing back premium content using the latest HTML5 MSE/EME extensions

Primary LanguageJavaBSD 2-Clause "Simplified" LicenseBSD-2-Clause

CableLabs MSE/EME Reference Tools

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.

Scope

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

Documentation

See the latest documentation here

DRM

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

HTML5 Player Application

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..

3rd Party Acknowledgments

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