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

js
copyTo(destination)
copyTo(destination, options)

Parameter

destination

Ein ArrayBuffer, ein TypedArray, oder ein DataView, 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 das visibleRect 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 das format 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.

js
let buffer = new Uint8Array(videoFrame.allocationSize());
let layout = await videoFrame.copyTo(buffer);

Das folgende Beispiel konvertiert einen Teil des videoFrame in das RGB-Format.

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);

Spezifikationen

Specification
WebCodecs
# dom-videoframe-copyto

Browser-Kompatibilität

BCD tables only load in the browser