VideoFrame: copyTo() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Die copyTo()
-Methode des VideoFrame
Interfaces kopiert den Inhalt des VideoFrame
in einen ArrayBuffer
.
Syntax
copyTo(destination)
copyTo(destination, options)
Parameter
destination
-
Ein
ArrayBuffer
, einTypedArray
, oder einDataView
, in den kopiert werden soll. options
Optional-
Ein Objekt, das Folgendes enthält:
rect
Optional-
Das Rechteck der Pixel, das vom
VideoFrame
kopiert werden soll. Wenn nicht angegeben, wird dasvisibleRect
verwendet. Dies ist im Format eines Dictionary-Objekts enthalten:x
: Die x-Koordinate.y
: Die y-Koordinate.width
: Die Breite des Rahmens.height
: Die Höhe des Rahmens.
layout
Optional-
Eine Liste, die die folgenden Werte für jede Ebene im
VideoFrame
enthält:offset
-
Ein ganzzahliger Wert, der den Versatz in Bytes angibt, an dem die gegebene Ebene beginnt.
stride
-
Ein ganzzahliger Wert, der die Anzahl der Bytes, einschließlich Padding, angibt, die von jeder Zeile der Ebene verwendet werden. Ebenen dürfen sich nicht überlappen. Wenn kein
layout
angegeben ist, werden die Ebenen eng gepackt.
format
Optional-
Ein Pixelformat für die Pixeldaten im
destination
. Kann auf"RGBA"
,"RGBX"
,"BGRA"
,"BGRX"
gesetzt werden. Wenn nicht angegeben, wird dasformat
verwendet. colorSpace
Optional-
Gibt den Farbraum der Pixeldaten im
destination
an. Kann auf"srgb"
für den sRGB-Farbraum oder"display-p3"
für den display-p3 Farbraum gesetzt werden. Nur anwendbar auf RGB-Pixelformate. Wenn nicht angegeben, wird"srgb"
verwendet.
Rückgabewert
Ein Promise
, das beim Abschluss der Kopie das Layout der Kopie auflöst.
Beispiele
Das folgende Beispiel kopiert den gesamten Inhalt von videoFrame
.
let buffer = new Uint8Array(videoFrame.allocationSize());
let layout = await videoFrame.copyTo(buffer);
Das folgende Beispiel konvertiert einen Teil des videoFrame
in das RGB-Format.
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);
Spezifikationen
Specification |
---|
WebCodecs # dom-videoframe-copyto |
Browser-Kompatibilität
BCD tables only load in the browser