Media Source Extensions works in Chrome 23+, Edge 12+, Firefox 42+, Opera 15+, Safari 8+ on macOS, and iPhone via Managed Media Source in iOS 17.1+.

Prince Dewani
May 4, 2026
Media Source Extensions (MSE) is a W3C JavaScript API that builds adaptive byte streams and feeds them to HTML media elements without plugins. It works in Chrome 23+, Edge 12+, Firefox 42+, Opera 15+, Samsung Internet 9.2+, Safari 8+ on macOS and iPadOS, while iPhone Safari stayed limited until iOS 17.1 added Managed Media Source.
This guide covers what Media Source Extensions is, which browsers support it, the key features, use cases, how to check support, and the known issues.
Media Source Extensions, or MSE, is a W3C specification that extends HTMLMediaElement with a MediaSource interface. It lets JavaScript build a video or audio stream piece by piece in the browser, append timed segments to a SourceBuffer, and play the stream back inside <video> and <audio> elements without a plugin.
Media Source Extensions works in every modern desktop browser and on Android, with full coverage on iPad, while iPhone Safari only got production-grade support after iOS 17.1 added Managed Media Source.
Chrome supports Media Source Extensions by default from Chrome 23 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 17 to 22 had MSE disabled by default behind a flag, and Chrome 4 to 16 did not support MSE at all. Chrome 108 also exposes MSE inside dedicated workers, which lets streaming code run off the main thread.
Microsoft Edge supports Media Source Extensions on every version, starting with Edge 12. Both legacy EdgeHTML Edge and modern Chromium Edge (from Edge 79) ship MSE on by default, so the same JavaScript runs across the full Edge release line on Windows, macOS, and Linux.
Firefox supports Media Source Extensions by default from Firefox 42 on Windows, macOS, Linux, and Android. Firefox 25 to 41 had MSE behind the media.mediasource.enabled preference, and Firefox 2 to 24 did not support MSE. Firefox enables MSE for MP4 with H.264 plus AAC and for WebM with VP8, VP9, or AV1.
Safari supports Media Source Extensions from Safari 8 on macOS. iPad Safari picked up the same MSE build from Safari 13 on iPadOS, while iPhone Safari only had partial MSE support and gated full streaming behind Managed Media Source, which Apple added in Safari on iOS 17.1. Safari 3.1 to 7.1 on macOS and Safari on iOS 3.2 to 12 did not support MSE.
Opera supports Media Source Extensions by default from Opera 15 on Windows, macOS, Linux, and Android. Opera 9 to 12.1 did not support MSE. Modern Chromium Opera follows the same SourceBuffer codec rules as Chrome, including MSE in dedicated workers from Opera 94.
Samsung Internet supports Media Source Extensions from version 9.2 on Galaxy phones and tablets. Samsung Internet 4 to 8.2 did not support MSE. Because the browser is built on Chromium, it inherits the same SourceBuffer codec mix as Chrome for Android, including WebM with VP9 and MP4 with H.264 plus AAC.
Android Browser supports Media Source Extensions from Android Browser 4.4.3 on Android 4.4 (KitKat) and later. Android 2.1 to 4.4.2 did not support MSE. On modern Android phones, use Chrome for Android, Firefox for Android, or Samsung Internet for the most current MSE build and the widest codec coverage.
Internet Explorer 11 has partial Media Source Extensions support on Windows 8.1 and Windows 10. Internet Explorer 5.5 to 10 did not support MSE. Microsoft has retired Internet Explorer, so use Microsoft Edge for any new MSE work on Windows.
Note: Media Source Extensions breaks across older Safari, iPhone, and legacy Android Browser builds. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
Media Source Extensions gives a streaming player a small set of building blocks that together replace the old single-file <video src> loop with a flexible byte-level pipeline.
Media Source Extensions powers most plugin-free streaming on the web today. The W3C spec calls out four core scenarios, and almost every large video service runs at least one of them.
A short JavaScript probe answers the question in two lines: confirm the MediaSource interface exists, then ask isTypeSupported() about the exact MIME type and codec string you plan to ship. Run the steps below in any browser DevTools console to get a yes or no for each codec combination.
Paste the snippet below into the same console for a one-shot read of every common codec combination:
// Run in the DevTools console of any browser to test Media Source Extensions support.
console.log("MSE interface present:", "MediaSource" in window);
if (window.MediaSource) {
const h264Mp4 = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
const vp9Webm = 'video/webm; codecs="vp9, opus"';
const hevcMp4 = 'video/mp4; codecs="hvc1.1.6.L93.B0"';
console.log("MP4 + H.264 + AAC:", MediaSource.isTypeSupported(h264Mp4));
console.log("WebM + VP9 + Opus:", MediaSource.isTypeSupported(vp9Webm));
console.log("MP4 + HEVC:", MediaSource.isTypeSupported(hevcMp4));
// MSE in dedicated workers landed in Chrome 108. Firefox and Safari are not there yet.
console.log("MSE in Workers:", "MediaSourceHandle" in self);
} else {
console.log("This browser does not expose MediaSource. Fall back to a progressive MP4 file.");
}If the MediaSource line prints false, the browser cannot use MSE and your player should hand the <video> element a plain MP4 URL instead.
MSE has the broadest streaming support of any web video API, but a handful of real edge cases still bite production teams. The hits cluster around iPhone Safari, codec gaps inside SourceBuffer, and memory pressure on long sessions.
In my experience, the trickiest production failure is a SourceBuffer that runs out of memory on a Smart TV or low-end Android phone. The page keeps appending segments, the buffer grows past the device limit, and the <video> element silently stalls without firing an error event. Adding a SourceBuffer.remove() call on every appendBuffer cycle, plus a watchdog on currentTime, is the cheapest fix that holds up across browsers.
All Media Source Extensions version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance