VideoFrame: VideoFrame() Konstruktor
Baseline
2024
*
Newly available
Since September 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Der VideoFrame()-Konstruktor erstellt ein neues VideoFrame-Objekt, das einen Frame eines Videos darstellt.
Syntax
new VideoFrame(image)
new VideoFrame(image, options)
new VideoFrame(data, options)
Parameter
Der erste Konstruktortyp (siehe oben) erstellt ein neues VideoFrame aus einem Bild. Seine Parameter sind:
image-
Ein Bild, das die Bilddaten für das neue
VideoFrameenthält. Es kann eines der folgenden Objekte sein: einSVGImageElement, einHTMLVideoElement, einHTMLCanvasElement, einImageBitmap, einOffscreenCanvas, oder ein anderesVideoFrame. optionsOptional-
Ein Objekt, das Folgendes enthält:
durationOptional-
Ein Integer, der die Dauer des Frames in Mikrosekunden darstellt.
timestamp-
Ein Integer, der den Zeitstempel des Frames in Mikrosekunden darstellt.
alphaOptional-
Ein String, der beschreibt, wie der Benutzeragent beim Umgang mit Alphakanälen vorgehen soll. Der Standardwert ist "keep".
"keep": Gibt an, dass der Benutzeragent die Alphakanaldaten beibehalten soll."discard": Gibt an, dass der Benutzeragent die Alphakanaldaten ignorieren oder entfernen soll.
visibleRectOptional-
Ein Objekt, das das sichtbare Rechteck des
VideoFramedarstellt und Folgendes enthält: displayWidthOptional-
Die Breite des
VideoFrame, wenn es nach Anwendung von Seitenverhältnis-Anpassungen angezeigt wird. displayHeightOptional-
Die Höhe des
VideoFrame, wenn es nach Anwendung von Seitenverhältnis-Anpassungen angezeigt wird. flipOptional-
Ein Boolean. Wenn
true, wird horizontales Spiegeln angewendet. Standardmäßigfalse. rotationOptional-
Ein Integer, der die Drehung (0, 90, 180 oder 270) in Grad im Uhrzeigersinn darstellt. Standardmäßig
0. Beliebige Zahlen (einschließlich negativer) werden zur nächsten Vierteldrehung gerundet.
Der zweite Konstruktortyp (siehe oben) erstellt ein neues VideoFrame aus einem ArrayBuffer. Seine Parameter sind:
data-
Ein
ArrayBuffer, einTypedArrayoder einDataView, das die Daten für das neueVideoFrameenthält. options-
Ein Objekt, das Folgendes enthält:
format-
Ein String, der das Video-Pixelformat darstellt. Einer der folgenden Strings, die auf der Seite der
format-Eigenschaft ausführlich beschrieben werden:"I420""I420A""I422""I444""NV12""RGBA""RGBX""BGRA""BGRX"
codedWidth-
Breite des
VideoFramein Pixel, potenziell einschließlich nicht sichtbarer Polsterung und bevor potenzielle Seitenverhältnis-Anpassungen in Betracht gezogen werden. codedHeight-
Höhe des
VideoFramein Pixel, potenziell einschließlich nicht sichtbarer Polsterung und bevor potenzielle Seitenverhältnis-Anpassungen in Betracht gezogen werden. timestamp-
Ein Integer, der den Zeitstempel des Frames in Mikrosekunden darstellt.
durationOptional-
Ein Integer, der die Dauer des Frames in Mikrosekunden darstellt.
layoutOptional-
Eine Liste, die die folgenden Werte für jede Ebene im
VideoFrameenthält:offset-
Ein Integer, der den Versatz in Bytes darstellt, an dem die angegebene Ebene beginnt.
stride-
Ein Integer, der die Anzahl der Bytes (einschließlich Polsterung) darstellt, die von jeder Zeile der Ebene genutzt werden. Ebenen dürfen sich nicht überlappen. Wenn kein
layoutangegeben ist, werden die Ebenen eng gepackt.
visibleRectOptional-
Ein Objekt, das das sichtbare Rechteck des
VideoFramedarstellt und Folgendes enthält: displayWidthOptional-
Die Breite des
VideoFrame, wenn es nach Anwendung von Seitenverhältnis-Anpassungen angezeigt wird. displayHeightOptional-
Die Höhe des
VideoFrame, wenn es nach Anwendung von Seitenverhältnis-Anpassungen angezeigt wird. colorSpace-
Ein Objekt, das den Farbraum des
VideoFramedarstellt und Folgendes enthält:primaries-
Ein String, der die Videofarbprimärfarben darstellt, beschrieben auf der Seite der
VideoColorSpace.primaries-Eigenschaft. transfer-
Ein String, der die Video-Farbübertragungsfunktion darstellt, beschrieben auf der Seite der
VideoColorSpace.transfer-Eigenschaft. matrix-
Ein String, der die Video-Farbmatrix darstellt, beschrieben auf der Seite der
VideoColorSpace.matrix-Eigenschaft. fullRange-
Ein Boolean. Wenn
true, gibt an, dass vollwertige Farbwerte verwendet werden.
transfer-
Ein Array von
ArrayBuffer, dieVideoFrametrennen und übernehmen wird. Wenn das Array denArrayBufferenthält, derdataunterstützt, wirdVideoFramediesen Puffer direkt verwenden, anstatt von ihm zu kopieren. flipOptional-
Ein Boolean. Wenn
true, wird horizontales Spiegeln angewendet. Standardmäßigfalse. rotationOptional-
Ein Integer, der die Drehung (0, 90, 180 oder 270) in Grad im Uhrzeigersinn darstellt. Standardmäßig
0. Beliebige Zahlen (einschließlich negativer) werden zur nächsten Vierteldrehung gerundet.
Beispiele
Die folgenden Beispiele stammen aus dem Artikel Videoverarbeitung mit WebCodecs. In diesem ersten Beispiel wird ein VideoFrame aus einem Canvas erstellt.
const cnv = document.createElement("canvas");
// draw something on the canvas
// …
const frameFromCanvas = new VideoFrame(cnv, { timestamp: 0 });
Im folgenden Beispiel wird ein VideoFrame aus einem TypedArray erstellt.
const pixelSize = 4;
const init = {
timestamp: 0,
codedWidth: 320,
codedHeight: 200,
format: "RGBA",
};
const data = new Uint8Array(init.codedWidth * init.codedHeight * pixelSize);
for (let x = 0; x < init.codedWidth; x++) {
for (let y = 0; y < init.codedHeight; y++) {
const offset = (y * init.codedWidth + x) * pixelSize;
data[offset] = 0x7f; // Red
data[offset + 1] = 0xff; // Green
data[offset + 2] = 0xd4; // Blue
data[offset + 3] = 0x0ff; // Alpha
}
}
init.transfer = [data.buffer];
const frame = new VideoFrame(data, init);
Spezifikationen
| Specification |
|---|
| WebCodecs> # dom-videoframe-videoframe> |