coderef

MediaStream recordingBaseline · Widely available

The MediaRecorder API captures data generated by MediaStream or HTMLMediaElement objects for analysis, processing, or saving to disk. Also known as the Media Recording API.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Apr 26, 2021. Widely available since Oct 26, 2023.

Browser support

DesktopChrome
1–48Not supported
49+Supportedsince Mar 2, 2016
Current: 155
Edge
12–18Not supported
79+Supportedsince Jan 15, 2020
Current: 154
Firefox
1–24Not supported
25+Supportedsince Oct 29, 2013
Current: 157
Safari
1–14Not supported
14.1+Supportedsince Apr 26, 2021
Current: 27
MobileChrome Android
18–48Not supported
49+Supportedsince Mar 9, 2016
Current: 155
Firefox Android
4–24Not supported
25+Supportedsince Oct 29, 2013
Current: 157
Safari iOS
1–13.4Not supported
14+Supportedsince Sep 16, 2020
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: BlobEvent.

Feature detection

JS · check before using
if ("BlobEvent" in globalThis) {
  // BlobEvent is available
} else {
  // load a polyfill or use a fallback
}

Sub-features

Support for each part of the feature (25). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
BlobEvent49792114492114
BlobEvent.BlobEvent49792114492114
BlobEvent.data49792114492114
BlobEvent.timecode5779✕14.157✕14.5
MediaRecorder47792514.1472514
MediaRecorder.MediaRecorder47792514.1472514
MediaRecorder.MediaRecorder.options_parameter49794314.1494314
MediaRecorder.audioBitrateMode8989✕✕89✕✕
MediaRecorder.audioBitsPerSecond49797114.1497914.5
MediaRecorder.dataavailable_event49792514.1492514
MediaRecorder.error_event✕✕2514.1✕2514
MediaRecorder.isTypeSupported_static47792514.1472514
MediaRecorder.mimeType49792514.1492514
MediaRecorder.pause49792514.1492514.5
MediaRecorder.pause_event49796514.1496514.5
MediaRecorder.requestData49792514.1492514
MediaRecorder.resume49792514.1492514.5
MediaRecorder.resume_event49796514.1496514.5
MediaRecorder.start47792514.1472514
MediaRecorder.start_event49792514.1492514
Show 5 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
MediaRecorder.state49792514.1492514
MediaRecorder.stop49792514.1492514
MediaRecorder.stop_event49792514.1492514
MediaRecorder.stream49792514.1492514
MediaRecorder.videoBitsPerSecond49797114.1497914.5