The readonly type
property of the RTCEncodedVideoFrame
interface indicates whether this frame is a key frame, delta frame, or empty frame.
The readonly type
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:
key
This is a "key frame", which contains all the information needed to render an image. It can be decoded without reference to any other frames.
delta
This 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.
empty
This 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:
js
const transformer = new TransformStream({ transform: async (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); }, });
Specification |
---|
WebRTC Encoded Transform # dom-rtcencodedvideoframe-type |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
type |
86 | 86 | 117 | No | 72 | 15.4 | 86 | 86 | 117 | 61 | 15.4 | 14.0 |
© 2005–2023 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