RTCEncodedVideoFrame: type 属性

Baseline 2023
新推出

自 2023 年 8 月起,此功能已在最新的设备和浏览器版本中可用。此功能可能不适用于旧设备或浏览器。

注意:此功能在 专用 Web Workers 中可用。

type 只读属性是 RTCEncodedVideoFrame 接口的一个属性,它指示该帧是关键帧、增量帧还是空帧。

该类型可以具有以下值之一

key

这是一个“关键帧”,其中包含渲染图像所需的所有信息。它可以独立于任何其他帧进行解码。

delta

这是一个“增量帧”,其中包含相对于先前帧的图像更改。该帧在没有访问它引用的帧的情况下无法解码。

empty

此帧不包含任何数据。此值是意外的,可能表示转换器在转换帧并将其通过 RTCRtpScriptTransformer.writable 传递之后仍然持有对帧的引用(将工作线程侧的帧对象传回主线程 WebRTC 管道后,该对象将不包含任何数据)。

示例

WebRTC 编码转换中实现的 transform() 函数可以查看 type 属性,并根据它是处理关键帧还是增量帧来修改转换代码。

js
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);
  },
});

规范

规范
WebRTC Encoded Transform
# dom-rtcencodedvideoframe-type

浏览器兼容性

另见