The W3C has developed two new extensions to the HTML5 specification to enable playback of adaptive bitrate, premium content on web browser platforms. MSE (Spec) allows playback of adaptive bitrate streams by introducing Javascript APIs that allow player applications to deliver individual video, audio, and data buffers to the browser’s media engine EME (Spec) allows playback of encrypted media by introducing Javascript APIs that allow player applications to perform encryption key management with a DRM-specific CDM embedded within the browser.

The motivation behind development of the CableLabs MSE-EME Reference Platform is to showcase the current landscape of support for these W3C extensions in the open source and proprietary technology arenas. More specifically, it contains working examples of content creation and encryption of MPEG DASH content along with subsequent playback of that content on supported web browsers.

For content creation, CableLabs uses several open source tools combined with some custom code to transrate/transcode a single input file, encrypt the output files with one or more of several supported DRM systems, and then segment and package those encrypted files according to the MPEG-DASH standard.

EME Tool Chain

For playback of encrypted MPEG-DASH, there is a commercially available player base from Fraunhofer as well as the dash.js media player with modifications to highlight the EME process along with support for additional DRM systems.

The reference software is detailed in subsequent sections of this documentation. You can find this documentation and our content creation software artifacts in the CableLabs GitHub.