Media Source Extensions

Last updated
MSE
Media Source Extensions
AbbreviationEME, media-source
Native name
Media Source Extensions
Status Candidate Recommendation [1] [2]
Year started2013 (2013) [3]
First publishedJanuary 29, 2013 (2013-01-29) [1]
Latest versionCandidate Recommendation
November 17, 2016 (2016-11-17) [1]
Preview versionEditor's draft
April 21, 2021 (2021-04-21) [4]
Organization
Committee HTML Media Extensions Working Group
Editors
  • Matthew Wolenetz
  • Mark Watson
Former editors
    • Jerry Smith (until September 2017 (2017-09))
    • Aaron Colwell (until April 2015 (2015-04))
    • Adrian Bateman (until April 2015 (2015-04))
[4] [1]
AuthorsHTML Media Extensions Working Group
Base standards HTML, Web IDL
Related standards Encrypted Media Extensions
Domain HTML5 video, HTML5 audio
Website

Media Source Extensions (MSE) is a W3C specification that allows JavaScript to send byte streams to media codecs within web browsers that support HTML5 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]

Contents

Netflix announced experimental support in June 2014 for the use of MSE playback on the Safari browser on the OS X Yosemite beta release. [7]

YouTube started using MSE in its HTML5 player in September 2013.

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]

Browser support for Media Source Extensions
DesktopMobile devices
Windows, Mac OS, LinuxiOSAndroid
Internet ExplorerEdgeChromeFirefoxSafariOperaAll browsers [11] EdgeChromeFirefoxOperaSamsung Internet
11.0 [12] 12+ [13] 23–30 [14] [15] 38–41 [14] 8+30+ [16] iOS 13+ [17] 12+92+90+64+9.2+
31+42+ [18]

Minor browsers

Players

See also

Related Research Articles

<span class="mw-page-title-main">Adobe Flash</span> Deprecated multimedia platform used to add animation and interactivity to websites

Adobe Flash is a multimedia software platform used for production of animations, rich internet applications, desktop applications, mobile apps, mobile games, and embedded web browser video players.

<span class="mw-page-title-main">Firefox</span> Free and open-source web browser by Mozilla

Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and anticipated web standards. In November 2017, Firefox began incorporating new technology under the code name "Quantum" to promote parallelism and a more intuitive user interface. Firefox is available for Windows 10 or later versions, macOS, and Linux. Its unofficial ports are available for various Unix and Unix-like operating systems, including FreeBSD, OpenBSD, NetBSD, illumos, and Solaris Unix. It is also available for Android and iOS. However, as with all other iOS web browsers, the iOS version uses the WebKit layout engine instead of Gecko due to platform requirements. An optimized version is also available on the Amazon Fire TV as one of the two main browsers available with Amazon's Silk Browser.

<span class="mw-page-title-main">HTML5</span> Fifth and current version of hypertext markup language

HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML Living Standard. It is maintained by the Web Hypertext Application Technology Working Group (WHATWG), a consortium of the major browser vendors.

<span class="mw-page-title-main">Microsoft Silverlight</span> Application framework for writing and running rich Internet applications

Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe's runtime, Adobe Flash. A plugin for Silverlight is still available for a very small number of browsers. While early versions of Silverlight focused on streaming media, later versions supported multimedia, graphics, and animation, and gave support to developers for CLI languages and development tools. Silverlight was one of the two application development platforms for Windows Phone, but web pages using Silverlight did not run on the Windows Phone or Windows Mobile versions of Internet Explorer, as there was no Silverlight plugin for Internet Explorer on those platforms.

HTTP Live Streaming is an HTTP-based adaptive bitrate streaming communications protocol developed by Apple Inc. and released in 2009. Support for the protocol is widespread in media players, web browsers, mobile devices, and streaming media servers. As of 2022, an annual video industry survey has consistently found it to be the most popular streaming format.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics, image processing, and effects in the HTML canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

The HTML5 specification introduced the video element for the purpose of playing videos, partially replacing the object element. HTML5 video is intended by its creators to become the new standard way to show video on the web, instead of the previous de facto standard of using the proprietary Adobe Flash plugin, though early adoption was hampered by lack of agreement as to which video coding formats and audio coding formats should be supported in web browsers. As of 2020, HTML5 video is the only widely supported video playback technology in modern browsers, with the Flash plugin being phased out.

Adaptive bitrate streaming is a technique used in streaming multimedia over computer networks. While in the past most video or audio streaming technologies utilized streaming protocols such as RTP with RTSP, today's adaptive streaming technologies are based almost exclusively on HTTP, and are designed to work efficiently over large distributed HTTP networks. Adaptive bitrate streaming works by detecting a user's bandwidth and CPU capacity in real time, adjusting the quality of the media stream accordingly. It requires the use of an encoder which encodes a single source media at multiple bit rates. The player client switches between streaming the different encodings depending on available resources. "The result: very little buffering, fast start time and a good experience for both high-end and low-end connections."

WebRTC is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.

<span class="mw-page-title-main">Pale Moon</span> Open-source web browser with an emphasis on customization

Pale Moon is an open-source web browser with an emphasis on customization; its motto is "Your browser, Your way". There are official releases for Microsoft Windows, FreeBSD, macOS, and Linux, as well as contributed builds for various platforms.

Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers. Similar to Apple's HTTP Live Streaming (HLS) solution, MPEG-DASH works by breaking the content into a sequence of small segments, which are served over HTTP. An early HTTP web server based streaming system called SProxy was developed and deployed in the Hewlett Packard Laboratories in 2006. It showed how to use HTTP range requests to break the content into small segments. SProxy shows the effectiveness of segment based streaming, gaining best Internet penetration due to the wide deployment of firewalls, and reducing the unnecessary traffic transmission if a user chooses to terminate the streaming session earlier before reaching the end. Each segment contains a short interval of playback time of content that is potentially many hours in duration, such as a movie or the live broadcast of a sport event. The content is made available at a variety of different bit rates, i.e., alternative segments encoded at different bit rates covering aligned short intervals of playback time. While the content is being played back by an MPEG-DASH client, the client uses a bit rate adaptation (ABR) algorithm to automatically select the segment with the highest bit rate possible that can be downloaded in time for playback without causing stalls or re-buffering events in the playback. The current MPEG-DASH reference client dash.js offers both buffer-based (BOLA) and hybrid (DYNAMIC) bit rate adaptation algorithms. Thus, an MPEG-DASH client can seamlessly adapt to changing network conditions and provide high quality playback with few stalls or re-buffering events.

Content Security Policy (CSP) is a computer security standard introduced to prevent cross-site scripting (XSS), clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context. It is a Candidate Recommendation of the W3C working group on Web Application Security, widely supported by modern web browsers. CSP provides a standard method for website owners to declare approved origins of content that browsers should be allowed to load on that website—covered types are JavaScript, CSS, HTML frames, web workers, fonts, images, embeddable objects such as Java applets, ActiveX, audio and video files, and other HTML5 features.

HTML5 Audio is a subject of the HTML5 specification, incorporating audio input, playback, and synthesis, as well as, in the browser. iOS

Unreal Media Server is a streaming server software created by Unreal Streaming Technologies.

<span class="mw-page-title-main">Mozilla</span> Free and open-source software community, developer of Firefox and Thunderbird

Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions. The community is supported institutionally by the non-profit Mozilla Foundation and its tax-paying subsidiary, the Mozilla Corporation.

<span class="mw-page-title-main">PDF.js</span> PDF viewer in JavaScript included in Mozilla Firefox

PDF.js is a JavaScript library that renders Portable Document Format (PDF) files using the web standards-compliant HTML5 Canvas. The project is led by the Mozilla Corporation after Andreas Gal launched it in 2011.

<span class="mw-page-title-main">VP9</span> Open and royalty-free video coding format released by Google in 2013

VP9 is an open and royalty-free video coding format developed by Google.

Encrypted Media Extensions (EME) is a W3C specification for providing a communication channel between web browsers and the Content Decryption Module (CDM) software which implements digital rights management (DRM). This allows the use of HTML5 video to play back DRM-wrapped content such as streaming video services without the use of heavy third-party media plugins like Adobe Flash or Microsoft Silverlight. The use of a third-party key management system may be required, depending on whether the publisher chooses to scramble the keys.

Bitmovin is a multimedia technology company which provides services that transcode digital video and audio to streaming formats using cloud computing, and streaming media players. Founded in 2013, the Austrian company contributes to MPEG-DASH, an open standard that allows streaming video to be played in HTML5 video and Flash players.

Nimble Streamer is a software media server developed by Softvelum. The server is used for streaming of live and on-demand video and audio to desktop computers, mobile devices, internet-connected TV sets, IPTV set-top boxes and other network-connected devices. Its first stable version 1.0.0-1 was released on October, 21st, 2013, with a number of preliminary versions done before that. The release cycle is intensive and introduces a new version every week or less. Nimble Streamer was the finalist in Streaming Media European Readers' Choice Awards for 2016 as the Best Streaming Innovation and for 2021 as Hardware/software Server.

References

  1. 1 2 3 4 Wolenetz, Matthew; Smith, Jerry; Watson, Mark; Colwell, Aaron; Bateman, Adrian (eds.). Media Source Extensions™. W3C (Technical report) via W3C.
  2. "Media Source Extensions™ Publication History - W3C". W3C. 21 September 2022.
  3. Colwell, Aaron; Bateman, Adrian; Watson, Mark, eds. (2013-01-29). Media Source Extensions. W3C (Technical report). Retrieved 2021-03-19 via W3C.
  4. 1 2 Media Working Group (2021-04-21). Wolenetz, Matthew; Watson, Mark; Smith, Jerry; Colwell, Aaron; Bateman, Adrian (eds.). "Media Source Extensions™". w3c.github.io. Editor's draft. Media Working Group. Retrieved 2021-04-21.
  5. "Media Source Extensions W3C Recommendation". 17 November 2016. Retrieved 5 January 2021.
  6. "Encrypted Media Extensions". 18 September 2017. Retrieved 29 January 2020.
  7. Anthony Park and Mark Watson (3 June 2013). "HTML5 Video in Safari on OS X Yosemite". Netflix.
  8. "Media Source Extensions". Can I use... Retrieved 2021-07-30. Fully supported only in iPadOS 13 and later
  9. Mozilla (2015-03-31). "Firefox 37.0, See All New Features, Updates and Fixes". Mozilla. 37.0. Retrieved 2021-04-24.
  10. Mozilla (2015-05-12). "Firefox 38.0, See All New Features, Updates and Fixes". Mozilla. 38.0. Retrieved 2021-04-24.
  11. All browsers on iOS platform must use WebKit engine
  12. Stefan; et al. (bitmovin Team) (2015-02-02). "The Status of MPEG-DASH today, and why YouTube & Netflix use it in HTML5 & beyond". dash-player.com. Archived from the original on 2015-02-21. Retrieved 2021-04-24.
  13. McCormick, Libby (2015-11-05). "Media Source Extensions (MSE) (Windows)". docs.microsoft.com. Retrieved 2021-04-24.
  14. 1 2 Not supported by default, but could be enabled via browser settings
  15. "Media Source Extensions - Chrome Platform Status". www.chromestatus.com. Retrieved 2021-07-30.
  16. Bynens, Mathias (2015-06-09). "Dev.Opera — Opera 30 released". dev.opera.com. Retrieved 2021-04-24.
  17. Media Source Extensions is only available on iPadOS
  18. Mozilla (2015-11-03). "Firefox 42.0, See All New Features, Updates and Fixes". Mozilla. 42.0. Retrieved 2021-04-24.
  19. "Pale Moon - Release Notes for Archived Versions § 27.0.0 (2016-11-22)". www.palemoon.org. 27.0.0. 2016-11-22. Retrieved 2021-04-24.
  20. "JavaScript player library / DASH & HLS client / MSE-EME player: google/shaka-player". March 24, 2019 via GitHub.
  21. "Shaka Player Demo". shaka-player-demo.appspot.com.
  22. NV, THEO Technologies. "THEOplayer – Universal Video Player". www.theoplayer.com.
  23. "Viblast Player". viblast.com.
  24. "HTML5 Player for Adaptive Streaming from Bitmovin". Bitmovin. January 22, 2016.
  25. "DASH-JS | ITEC – Dynamic Adaptive Streaming over HTTP".
  26. "A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.: Dash-Industry-Forum/dash.js". March 23, 2019 via GitHub.
  27. "GitHub - canalplus/rx-player: Smooth/DASH HTML5 Video Player". March 21, 2019 via GitHub.
  28. "dailymotion – Medium". Medium.
  29. "hls.js demo page". Archived from the original on 2015-11-20. Retrieved 2017-12-03.
  30. "Http Adaptive Streaming javascript player based on HTML5 premium extensions (MSE/EME): Orange-OpenSource/hasplayer.js". February 20, 2019 via GitHub.
  31. "JW Player Support". JW Player Support.
  32. "HTML5 player for SLDP". Softvelum.
  33. "Azure Media Player". Microsoft. 2015. Retrieved 2016-06-14.
  34. "Unreal Media Server". www.umediaserver.net.
  35. "Storm Streaming Server". Storm Streaming. Retrieved 2021-07-30.