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

瀏覽器相容性

另見