WebCodecs
Limited availability
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.
Compatibility (view on caniuse.com)
- Chrome 94 Released on 2021-09-21
- Chrome Android 94 Released on 2021-09-21
- Edge 94 Released on 2021-09-24
- Firefox ❌ See bugzil.la/1749044 bugzil.la/1749046 bugzil.la/1749048
- Firefox for Android ❌ See bugzil.la/1749045 bugzil.la/1872733 bugzil.la/1749539 bugzil.la/1749044 bugzil.la/1749046 bugzil.la/1749048
- Safari ❌ Search for bugs Search for standards position
- Safari on iOS ❌ Search for bugs Search for standards position
MDN docs
- VideoColorSpace
- VideoColorSpace.fullRange
- VideoColorSpace.matrix
- VideoColorSpace.primaries
- VideoColorSpace.toJSON
- VideoColorSpace.transfer
- EncodedVideoChunk
- EncodedVideoChunk.EncodedVideoChunk
- EncodedVideoChunk.byteLength
- EncodedVideoChunk.copyTo
- EncodedVideoChunk.duration
- EncodedVideoChunk.timestamp
- EncodedVideoChunk.type
- VideoDecoder
- VideoDecoder.VideoDecoder
- VideoDecoder.close
- VideoDecoder.configure
- VideoDecoder.decode
- VideoDecoder.decodeQueueSize
- VideoDecoder.flush
- VideoDecoder.isConfigSupported_static
- VideoDecoder.reset
- VideoDecoder.state
- VideoEncoder
- VideoEncoder.VideoEncoder
- VideoEncoder.close
- VideoEncoder.configure
- VideoEncoder.encode
- VideoEncoder.encodeQueueSize
- VideoEncoder.flush
- VideoEncoder.isConfigSupported_static
- VideoEncoder.reset
- VideoEncoder.state
- VideoFrame
- VideoFrame.VideoFrame
- VideoFrame.allocationSize
- VideoFrame.clone
- VideoFrame.close
- VideoFrame.codedHeight
- VideoFrame.codedRect
- VideoFrame.codedWidth
- VideoFrame.colorSpace
- VideoFrame.copyTo
- VideoFrame.displayHeight
- VideoFrame.displayWidth
- VideoFrame.duration
- VideoFrame.format
- VideoFrame.timestamp
- VideoFrame.visibleRect
- VideoColorSpace.VideoColorSpace
- VideoDecoder.dequeue_event
- VideoEncoder.dequeue_event
- AudioData
- AudioData.AudioData
- AudioData.allocationSize
- AudioData.clone
- AudioData.close
- AudioData.copyTo
- AudioData.duration
- AudioData.format
- AudioData.numberOfChannels
- AudioData.numberOfFrames
- AudioData.sampleRate
- AudioData.timestamp
- AudioDecoder
- AudioDecoder.AudioDecoder
- AudioDecoder.close
- AudioDecoder.configure
- AudioDecoder.decode
- AudioDecoder.decodeQueueSize
- AudioDecoder.flush
- AudioDecoder.isConfigSupported_static
- AudioDecoder.reset
- AudioDecoder.state
- AudioEncoder
- AudioEncoder.AudioEncoder
- AudioEncoder.close
- AudioEncoder.configure
- AudioEncoder.encode
- AudioEncoder.encodeQueueSize
- AudioEncoder.flush
- AudioEncoder.isConfigSupported_static
- AudioEncoder.reset
- AudioEncoder.state
- EncodedAudioChunk
- EncodedAudioChunk.EncodedAudioChunk
- EncodedAudioChunk.byteLength
- EncodedAudioChunk.copyTo
- EncodedAudioChunk.duration
- EncodedAudioChunk.timestamp
- EncodedAudioChunk.type
- ImageDecoder
- ImageDecoder.ImageDecoder
- ImageDecoder.close
- ImageDecoder.complete
- ImageDecoder.completed
- ImageDecoder.decode
- ImageDecoder.isTypeSupported_static
- ImageDecoder.reset
- ImageDecoder.tracks
- ImageDecoder.type
- ImageTrack
- ImageTrack.animated
- ImageTrack.frameCount
- ImageTrack.repetitionCount
- ImageTrack.selected
- ImageTrackList
- ImageTrackList.length
- ImageTrackList.ready
- ImageTrackList.selectedIndex
- ImageTrackList.selectedTrack
- AudioDecoder.dequeue_event
- AudioEncoder.dequeue_event
Specifications
BCD data
- api.VideoColorSpace
- api.VideoColorSpace.fullRange
- api.VideoColorSpace.matrix
- api.VideoColorSpace.primaries
- api.VideoColorSpace.toJSON
- api.VideoColorSpace.transfer
- api.EncodedVideoChunk
- api.EncodedVideoChunk.EncodedVideoChunk
- api.EncodedVideoChunk.byteLength
- api.EncodedVideoChunk.copyTo
- api.EncodedVideoChunk.duration
- api.EncodedVideoChunk.timestamp
- api.EncodedVideoChunk.type
- api.VideoDecoder
- api.VideoDecoder.VideoDecoder
- api.VideoDecoder.close
- api.VideoDecoder.configure
- api.VideoDecoder.decode
- api.VideoDecoder.decodeQueueSize
- api.VideoDecoder.flush
- api.VideoDecoder.isConfigSupported_static
- api.VideoDecoder.reset
- api.VideoDecoder.state
- api.VideoEncoder
- api.VideoEncoder.VideoEncoder
- api.VideoEncoder.close
- api.VideoEncoder.configure
- 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.allocationSize
- api.VideoFrame.clone
- api.VideoFrame.close
- api.VideoFrame.codedHeight
- api.VideoFrame.codedRect
- api.VideoFrame.codedWidth
- api.VideoFrame.colorSpace
- api.VideoFrame.copyTo
- api.VideoFrame.displayHeight
- api.VideoFrame.displayWidth
- api.VideoFrame.duration
- api.VideoFrame.format
- api.VideoFrame.timestamp
- api.VideoFrame.visibleRect
- api.VideoColorSpace.VideoColorSpace
- api.VideoDecoder.dequeue_event
- api.VideoEncoder.dequeue_event
- 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.flush
- api.AudioDecoder.isConfigSupported_static
- api.AudioDecoder.reset
- api.AudioDecoder.state
- api.AudioEncoder
- api.AudioEncoder.AudioEncoder
- api.AudioEncoder.close
- api.AudioEncoder.configure
- 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.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.AudioDecoder.dequeue_event
- api.AudioEncoder.dequeue_event
- api.AudioEncoder.configure.opus
- api.AudioEncoder.configure.bitrateMode
- api.AudioEncoder.configure.opus.opus_application
- api.AudioEncoder.configure.opus.opus_signal