<?xml version="1.0" encoding="UTF-8"?>
<feature id="webcodecs"><name>WebCodecs</name><description>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.</description><baseline><status>limited</status></baseline><support><browser name="chrome" version="94" supported="true"></browser><browser name="firefox" version="130" supported="true"></browser><browser name="safari" version="26" supported="true"></browser><browser name="edge" version="94" supported="true"></browser><browser name="chrome_android" version="94" supported="true"></browser><browser name="firefox_android" version="—" supported="false"></browser><browser name="safari_ios" version="26" supported="true"></browser></support><specifications><spec>https://w3c.github.io/webcodecs/</spec></specifications><caniuse><id>webcodecs</id></caniuse><mdn_url>https://developer.mozilla.org/docs/Web/API/AudioData</mdn_url><compat_features><key>api.AudioData</key><key>api.AudioData.AudioData</key><key>api.AudioData.allocationSize</key><key>api.AudioData.clone</key><key>api.AudioData.close</key><key>api.AudioData.copyTo</key><key>api.AudioData.duration</key><key>api.AudioData.format</key><key>api.AudioData.numberOfChannels</key><key>api.AudioData.numberOfFrames</key><key>api.AudioData.sampleRate</key><key>api.AudioData.timestamp</key><key>api.AudioDecoder</key><key>api.AudioDecoder.AudioDecoder</key><key>api.AudioDecoder.close</key><key>api.AudioDecoder.configure</key><key>api.AudioDecoder.decode</key><key>api.AudioDecoder.decodeQueueSize</key><key>api.AudioDecoder.dequeue_event</key><key>api.AudioDecoder.flush</key><key>api.AudioDecoder.isConfigSupported_static</key><key>api.AudioDecoder.reset</key><key>api.AudioDecoder.state</key><key>api.AudioEncoder</key><key>api.AudioEncoder.AudioEncoder</key><key>api.AudioEncoder.close</key><key>api.AudioEncoder.configure</key><key>api.AudioEncoder.configure.bitrateMode</key><key>api.AudioEncoder.configure.opus</key><key>api.AudioEncoder.configure.opus.opus_application</key><key>api.AudioEncoder.configure.opus.opus_signal</key><key>api.AudioEncoder.dequeue_event</key><key>api.AudioEncoder.encode</key><key>api.AudioEncoder.encodeQueueSize</key><key>api.AudioEncoder.flush</key><key>api.AudioEncoder.isConfigSupported_static</key><key>api.AudioEncoder.reset</key><key>api.AudioEncoder.state</key><key>api.EncodedAudioChunk</key><key>api.EncodedAudioChunk.EncodedAudioChunk</key><key>api.EncodedAudioChunk.byteLength</key><key>api.EncodedAudioChunk.copyTo</key><key>api.EncodedAudioChunk.duration</key><key>api.EncodedAudioChunk.timestamp</key><key>api.EncodedAudioChunk.type</key><key>api.EncodedVideoChunk</key><key>api.EncodedVideoChunk.EncodedVideoChunk</key><key>api.EncodedVideoChunk.byteLength</key><key>api.EncodedVideoChunk.copyTo</key><key>api.EncodedVideoChunk.duration</key><key>api.EncodedVideoChunk.timestamp</key><key>api.EncodedVideoChunk.type</key><key>api.ImageDecoder</key><key>api.ImageDecoder.ImageDecoder</key><key>api.ImageDecoder.close</key><key>api.ImageDecoder.complete</key><key>api.ImageDecoder.completed</key><key>api.ImageDecoder.decode</key><key>api.ImageDecoder.isTypeSupported_static</key><key>api.ImageDecoder.reset</key><key>api.ImageDecoder.tracks</key><key>api.ImageDecoder.type</key><key>api.ImageTrack</key><key>api.ImageTrack.animated</key><key>api.ImageTrack.frameCount</key><key>api.ImageTrack.repetitionCount</key><key>api.ImageTrack.selected</key><key>api.ImageTrackList</key><key>api.ImageTrackList.length</key><key>api.ImageTrackList.ready</key><key>api.ImageTrackList.selectedIndex</key><key>api.ImageTrackList.selectedTrack</key><key>api.VideoColorSpace</key><key>api.VideoColorSpace.VideoColorSpace</key><key>api.VideoColorSpace.fullRange</key><key>api.VideoColorSpace.matrix</key><key>api.VideoColorSpace.primaries</key><key>api.VideoColorSpace.toJSON</key><key>api.VideoColorSpace.transfer</key><key>api.VideoDecoder</key><key>api.VideoDecoder.VideoDecoder</key><key>api.VideoDecoder.close</key><key>api.VideoDecoder.configure</key><key>api.VideoDecoder.configure.flip_option</key><key>api.VideoDecoder.configure.rotation_option</key><key>api.VideoDecoder.decode</key><key>api.VideoDecoder.decodeQueueSize</key><key>api.VideoDecoder.dequeue_event</key><key>api.VideoDecoder.flush</key><key>api.VideoDecoder.isConfigSupported_static</key><key>api.VideoDecoder.isConfigSupported_static.flip_option</key><key>api.VideoDecoder.isConfigSupported_static.rotation_option</key><key>api.VideoDecoder.reset</key><key>api.VideoDecoder.state</key><key>api.VideoEncoder</key><key>api.VideoEncoder.VideoEncoder</key><key>api.VideoEncoder.close</key><key>api.VideoEncoder.configure</key><key>api.VideoEncoder.dequeue_event</key><key>api.VideoEncoder.encode</key><key>api.VideoEncoder.encodeQueueSize</key><key>api.VideoEncoder.flush</key><key>api.VideoEncoder.isConfigSupported_static</key><key>api.VideoEncoder.reset</key><key>api.VideoEncoder.state</key><key>api.VideoFrame</key><key>api.VideoFrame.VideoFrame</key><key>api.VideoFrame.VideoFrame.flip_option</key><key>api.VideoFrame.VideoFrame.rotation_option</key><key>api.VideoFrame.allocationSize</key><key>api.VideoFrame.clone</key><key>api.VideoFrame.close</key><key>api.VideoFrame.codedHeight</key><key>api.VideoFrame.codedRect</key><key>api.VideoFrame.codedWidth</key><key>api.VideoFrame.colorSpace</key><key>api.VideoFrame.copyTo</key><key>api.VideoFrame.copyTo.format_property</key><key>api.VideoFrame.displayHeight</key><key>api.VideoFrame.displayWidth</key><key>api.VideoFrame.duration</key><key>api.VideoFrame.flip</key><key>api.VideoFrame.format</key><key>api.VideoFrame.rotation</key><key>api.VideoFrame.timestamp</key><key>api.VideoFrame.visibleRect</key></compat_features><canonical_url>https://nowyoucanuse.com/features--webcodecs.html</canonical_url></feature>