VideoFrame: copyTo() 方法
注意:此功能在 專用 Web Workers 中可用。
VideoFrame 介面的 copyTo() 方法會將 VideoFrame 的內容複製到一個 ArrayBuffer 中。
語法
js
copyTo(destination)
copyTo(destination, options)
引數
destination-
用於複製到的
ArrayBuffer、TypedArray或DataView。 options可選-
一個包含以下內容的 *)
rect可選-
要從
VideoFrame中複製的畫素矩形。如果未指定,將使用visibleRect。其格式為一個字典物件,包含:x:x 座標。y:y 座標。width:幀的寬度。height:幀的高度。
layout可選-
一個列表,包含
VideoFrame中每個平面的以下值:offset-
一個整數,表示給定平面開始的偏移量(以位元組為單位)。
stride(步幅)-
一個整數,表示平面中每一行使用的位元組數(包括填充)。平面可能不會重疊。如果未指定
layout,則平面將緊密打包。
format可選-
destination中畫素資料的畫素格式。可以設定為"RGBA"、"RGBX"、"BGRA"、"BGRX"。如果未指定,將使用format。 colorSpace可選-
指定
destination中畫素資料的顏色空間。可以設定為 sRGB 顏色空間的"srgb"或 display-p3 顏色空間的"display-p3"。僅適用於 RGB 畫素格式。如果未指定,將使用"srgb"。
返回值
一個 Promise,當複製完成後,該 Promise 會解析為複製的佈局。
示例
以下示例複製了 videoFrame 的全部內容。
js
let buffer = new Uint8Array(videoFrame.allocationSize());
let layout = await videoFrame.copyTo(buffer);
以下示例將 videoFrame 的一部分轉換為 RGB 格式。
js
const videoRect = {
x: 100,
y: 100,
width: 80,
height: 60,
};
const options = {
rect: videoRect,
format: "RGBX",
colorSpace: "display-p3",
};
const size = videoFrame.allocationSize(options);
const buffer = new ArrayBuffer(size);
const layout = await videoFrame.copyTo(buffer, options);
規範
| 規範 |
|---|
| WebCodecs # dom-videoframe-copyto |
瀏覽器相容性
載入中…