Limited Availability
id: webcodecs
WebCodecs
The WebCodecs API provides low-level access to individual video frames and chunks of audio samples, for full control over the way media is processed.
Baseline Status:
This feature is currently Limited and is missing in at least one major browser engine.
Desktop Browser Engine Support
Google Chrome
94
Supported
Mozilla Firefox
130
Supported
Apple Safari
26
Supported
Microsoft Edge
94
Supported
Mobile Browser Engine Support
Chrome Android
94
Firefox Android
—
Safari iOS
26
Specifications and References
MDN Browser Compat Data Keys:
api.AudioData ↗
api.AudioData.AudioData ↗
api.AudioData.allocationSize ↗
api.AudioData.clone ↗
api.AudioData.close ↗
api.AudioData.copyTo ↗
api.AudioData.duration ↗
api.AudioData.format ↗
api.AudioData.numberOfChannels ↗
api.AudioData.numberOfFrames ↗
api.AudioData.sampleRate ↗
api.AudioData.timestamp ↗
api.AudioDecoder ↗
api.AudioDecoder.AudioDecoder ↗
api.AudioDecoder.close ↗
api.AudioDecoder.configure ↗
api.AudioDecoder.decode ↗
api.AudioDecoder.decodeQueueSize ↗
api.AudioDecoder.dequeue_event ↗
api.AudioDecoder.flush ↗
api.AudioDecoder.isConfigSupported_static ↗
api.AudioDecoder.reset ↗
api.AudioDecoder.state ↗
api.AudioEncoder ↗
api.AudioEncoder.AudioEncoder ↗
api.AudioEncoder.close ↗
api.AudioEncoder.configure ↗
api.AudioEncoder.configure.bitrateMode ↗
api.AudioEncoder.configure.opus ↗
api.AudioEncoder.configure.opus.opus_application ↗
api.AudioEncoder.configure.opus.opus_signal ↗
api.AudioEncoder.dequeue_event ↗
api.AudioEncoder.encode ↗
api.AudioEncoder.encodeQueueSize ↗
api.AudioEncoder.flush ↗
api.AudioEncoder.isConfigSupported_static ↗
api.AudioEncoder.reset ↗
api.AudioEncoder.state ↗
api.EncodedAudioChunk ↗
api.EncodedAudioChunk.EncodedAudioChunk ↗
api.EncodedAudioChunk.byteLength ↗
api.EncodedAudioChunk.copyTo ↗
api.EncodedAudioChunk.duration ↗
api.EncodedAudioChunk.timestamp ↗
api.EncodedAudioChunk.type ↗
api.EncodedVideoChunk ↗
api.EncodedVideoChunk.EncodedVideoChunk ↗
api.EncodedVideoChunk.byteLength ↗
api.EncodedVideoChunk.copyTo ↗
api.EncodedVideoChunk.duration ↗
api.EncodedVideoChunk.timestamp ↗
api.EncodedVideoChunk.type ↗
api.ImageDecoder ↗
api.ImageDecoder.ImageDecoder ↗
api.ImageDecoder.close ↗
api.ImageDecoder.complete ↗
api.ImageDecoder.completed ↗
api.ImageDecoder.decode ↗
api.ImageDecoder.isTypeSupported_static ↗
api.ImageDecoder.reset ↗
api.ImageDecoder.tracks ↗
api.ImageDecoder.type ↗
api.ImageTrack ↗
api.ImageTrack.animated ↗
api.ImageTrack.frameCount ↗
api.ImageTrack.repetitionCount ↗
api.ImageTrack.selected ↗
api.ImageTrackList ↗
api.ImageTrackList.length ↗
api.ImageTrackList.ready ↗
api.ImageTrackList.selectedIndex ↗
api.ImageTrackList.selectedTrack ↗
api.VideoColorSpace ↗
api.VideoColorSpace.VideoColorSpace ↗
api.VideoColorSpace.fullRange ↗
api.VideoColorSpace.matrix ↗
api.VideoColorSpace.primaries ↗
api.VideoColorSpace.toJSON ↗
api.VideoColorSpace.transfer ↗
api.VideoDecoder ↗
api.VideoDecoder.VideoDecoder ↗
api.VideoDecoder.close ↗
api.VideoDecoder.configure ↗
api.VideoDecoder.configure.flip_option ↗
api.VideoDecoder.configure.rotation_option ↗
api.VideoDecoder.decode ↗
api.VideoDecoder.decodeQueueSize ↗
api.VideoDecoder.dequeue_event ↗
api.VideoDecoder.flush ↗
api.VideoDecoder.isConfigSupported_static ↗
api.VideoDecoder.isConfigSupported_static.flip_option ↗
api.VideoDecoder.isConfigSupported_static.rotation_option ↗
api.VideoDecoder.reset ↗
api.VideoDecoder.state ↗
api.VideoEncoder ↗
api.VideoEncoder.VideoEncoder ↗
api.VideoEncoder.close ↗
api.VideoEncoder.configure ↗
api.VideoEncoder.dequeue_event ↗
api.VideoEncoder.encode ↗
api.VideoEncoder.encodeQueueSize ↗
api.VideoEncoder.flush ↗
api.VideoEncoder.isConfigSupported_static ↗
api.VideoEncoder.reset ↗
api.VideoEncoder.state ↗
api.VideoFrame ↗
api.VideoFrame.VideoFrame ↗
api.VideoFrame.VideoFrame.flip_option ↗
api.VideoFrame.VideoFrame.rotation_option ↗
api.VideoFrame.allocationSize ↗
api.VideoFrame.clone ↗
api.VideoFrame.close ↗
api.VideoFrame.codedHeight ↗
api.VideoFrame.codedRect ↗
api.VideoFrame.codedWidth ↗
api.VideoFrame.colorSpace ↗
api.VideoFrame.copyTo ↗
api.VideoFrame.copyTo.format_property ↗
api.VideoFrame.displayHeight ↗
api.VideoFrame.displayWidth ↗
api.VideoFrame.duration ↗
api.VideoFrame.flip ↗
api.VideoFrame.format ↗
api.VideoFrame.rotation ↗
api.VideoFrame.timestamp ↗
api.VideoFrame.visibleRect ↗