Media Source Extensions (MSE) is a
W3C specification that allows
JavaScript to send
byte streams to
media codecs within
web browsers that support
HTML video and
audio.[5] Among other possible uses, this allows the implementation of client-side prefetching and
buffering code for
streaming media entirely in
JavaScript. It is compatible with, but should not be confused with, the
Encrypted Media Extensions (EME) specification, and neither requires the use of the other, although many EME implementations are only capable of decrypting media data provided via MSE.[6]
YouTube started using MSE in its
HTML5 player in September 2013.
This section needs expansion with: an explanation of how these affect video-blocking and autoplay blocking accessibility tools. You can help by
adding to it. (May 2015)
Browser support
Media Source Extensions
API is widely supported across all modern
web browsers, with the only exception being iPhone-family devices (although it is supported on iPadOS).[8] Firefox 37 already had a subset of MSE API available for use with only YouTube in Firefox 37 on Windows Vista or later only,[9] while Mac OS X version had in enabled starting version 38.[10]
Pale Moon from version 27.0, since 22 November 2016.[19]
Players
NexPlayer for HTML5 MSE and EME supporting HLS and DASH
castLabs PRESTOplay video player for HMTL5 MSE and EME supporting DASH and HLS
Akamai Media Player as a contributor to the
Dash Industry Forum and DASH.js (DASH IF reference client). AMP includes Dash.js, HLS.js and advanced
QUIC protocol playback from Akamai Edge Servers
Shaka Player, an open source javascript player library for HTML5 MSE and
EME video with
DASH and
HLS support[20][21]
The Video Player by Comcast Technology Solutions
THEOplayer by OpenTelly: HLS and MPEG-DASH player for cross-platform HTML5 support without the need for Flash fallback[22]
Viblast Player: HLS and MPEG-DASH player for HTML5 MSE and EME, with Flash fallback[23]
bitmovin's bitdash MPEG-DASH player for HTML5 MSE and EME, with Flash fallback[24]