This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
The isTypeSupported() static method of the MediaRecorder interface returns a Boolean which is true if the MIME media type specified is one the user agent should be able to successfully record.
MediaRecorder.isTypeSupported(mimeType)
mimeTypeThe MIME media type to check.
A Boolean, true if the MediaRecorder implementation is capable of recording Blob objects for the specified MIME type. Recording may still fail if there are insufficient resources to support the recording and encoding process. If the value is false, the user agent is incapable of recording the specified format.
const types = [
"video/webm",
"audio/webm",
"video/webm;codecs=vp8",
"video/webm;codecs=daala",
"video/webm;codecs=h264",
"audio/webm;codecs=opus",
"video/mp4",
"video/mp4;codecs=avc1.64003E,mp4a.40.2",
"video/mp4;codecs=avc1.64003E,opus",
"video/mp4;codecs=avc3.64003E,mp4a.40.2",
"video/mp4;codecs=avc3.64003E,opus",
"video/mp4;codecs=hvc1.1.6.L186.B0,mp4a.40.2",
"video/mp4;codecs=hvc1.1.6.L186.B0,opus",
"video/mp4;codecs=hev1.1.6.L186.B0,mp4a.40.2",
"video/mp4;codecs=hev1.1.6.L186.B0,opus",
"video/mp4;codecs=av01.0.19M.08,mp4a.40.2",
"video/mp4;codecs=av01.0.19M.08,opus",
];
for (const type of types) {
console.log(
`Is ${type} supported? ${
MediaRecorder.isTypeSupported(type) ? "Yes!" : "Nope :("
}`,
);
}
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
isTypeSupported_static |
47 | 79 | 25 | 36 | 14.1 | 47 | 25 | 36 | 14 | 5.0 | 47 | 14 |
MediaStreamTrackMediaStreamMediaCapabilities
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/isTypeSupported_static