Since August 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Note: This feature is available in Dedicated Web Workers.
The type read-only property of the RTCEncodedVideoFrame interface indicates whether this frame is a key frame, delta frame, or empty frame.
The type can have one of the following values:
keyThis is a "key frame", which contains all the information needed to render an image. It can be decoded without reference to any other frames.
deltaThis is a "delta frame", which contains changes to an image relative to some previous frame. The frame cannot be decoded without access to the frame(s) that it references.
emptyThis frame contains no data. This value is unexpected, and may indicate that the transform is holding a reference to frames after they have been transformed and piped to RTCRtpScriptTransformer.writable (after transferring back to the main-thread WebRTC pipeline the worker side frame object will have no data).
The implementation of a transform() function in a WebRTC Encoded Transform can look at the type and modify the transform code based on whether it is dealing with a key frame or delta frame:
const transformer = new TransformStream({
async transform(encodedFrame, controller) {
if (encodedFrame.type === "key") {
// Apply key frame transformation
} else if (encodedFrame.type === "delta") {
// Apply delta frame transformation
} else {
// Empty
// Check transform is not holding reference to frames after processing!
}
controller.enqueue(encodedFrame);
},
});
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
type |
86 | 86 | 117 | 72 | 15.4 | 86 | 117 | 61 | 15.4 | 14.0 | 86 | 15.4 |
© 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/RTCEncodedVideoFrame/type