VideoFrame
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 VideoFrame
Schnittstelle der Web Codecs API repräsentiert einen Frame eines Videos.
VideoFrame
ist ein übertragbares Objekt.
Beschreibung
Ein VideoFrame
-Objekt kann auf verschiedene Weise erstellt oder abgerufen werden. Der MediaStreamTrackProcessor
zerlegt eine Medienspur in einzelne VideoFrame
-Objekte.
Ein VideoFrame
ist eine Bildquelle und verfügt über einen Konstruktor, der jede andere Canvas-Quelle akzeptiert (
ein SVGImageElement
,
ein HTMLVideoElement
,
ein HTMLCanvasElement
,
ein ImageBitmap
,
ein OffscreenCanvas
,
oder ein anderes VideoFrame
).
Das bedeutet, dass ein Frame aus einem Bild oder Videoelement erstellt werden kann.
Ein zweiter Konstruktor ermöglicht die Erstellung eines VideoFrame
aus seiner binären Pixelrepräsentation in einem ArrayBuffer
, einem TypedArray
oder einem DataView
.
Erstellte Frames können dann in eine Medienspur umgewandelt werden, zum Beispiel mit der MediaStreamTrackGenerator
Schnittstelle, die eine Medienspur aus einem Stream von Frames erstellt.
Konstruktor
VideoFrame()
-
Erstellt ein neues
VideoFrame
-Objekt.
Instanz-Eigenschaften
VideoFrame.format
Schreibgeschützt-
Gibt das Pixelformat des
VideoFrame
zurück. VideoFrame.codedWidth
Schreibgeschützt-
Gibt die Breite des
VideoFrame
in Pixeln zurück, möglicherweise einschließlich unsichtbarer Polsterung und vor Berücksichtigung potenzieller Verhältnis-Anpassungen. VideoFrame.codedHeight
Schreibgeschützt-
Gibt die Höhe des
VideoFrame
in Pixeln zurück, möglicherweise einschließlich unsichtbarer Polsterung und vor Berücksichtigung potenzieller Verhältnis-Anpassungen. VideoFrame.codedRect
Schreibgeschützt-
Gibt ein
DOMRectReadOnly
mit der Breite und Höhe zurück, diecodedWidth
undcodedHeight
entsprechen. VideoFrame.visibleRect
Schreibgeschützt-
Gibt ein
DOMRectReadOnly
zurück, das das sichtbare Rechteck der Pixel für diesesVideoFrame
beschreibt. VideoFrame.displayWidth
Schreibgeschützt-
Gibt die Breite des
VideoFrame
zurück, wenn es nach Anwendung von Seitenverhältnis-Anpassungen angezeigt wird. VideoFrame.displayHeight
Schreibgeschützt-
Gibt die Höhe des
VideoFrame
zurück, wenn es nach Anwendung von Seitenverhältnis-Anpassungen angezeigt wird. VideoFrame.duration
Schreibgeschützt-
Gibt eine ganze Zahl zurück, die die Dauer des Videos in Mikrosekunden angibt.
VideoFrame.timestamp
Schreibgeschützt-
Gibt eine ganze Zahl zurück, die den Zeitstempel des Videos in Mikrosekunden angibt.
VideoFrame.colorSpace
Schreibgeschützt-
Gibt ein
VideoColorSpace
Objekt zurück.
Instanz-Methoden
VideoFrame.allocationSize()
-
Gibt die Anzahl der Bytes zurück, die benötigt werden, um das
VideoFrame
zu halten, gefiltert durch Optionen, die in die Methode übergeben werden. VideoFrame.copyTo()
-
Kopiert den Inhalt des
VideoFrame
in einenArrayBuffer
. VideoFrame.clone()
-
Erstellt ein neues
VideoFrame
-Objekt mit Bezug auf die gleiche Medienressource wie das Original. VideoFrame.close()
-
Löscht alle Zustände und gibt die Referenz zur Medienressource frei.
Beispiele
Im folgenden Beispiel werden Frames von einem MediaStreamTrackProcessor
zurückgegeben und dann kodiert. Sehen Sie das vollständige Beispiel und lesen Sie mehr darüber in dem Artikel Videoverarbeitung mit WebCodecs.
let frame_counter = 0;
const track = stream.getVideoTracks()[0];
const media_processor = new MediaStreamTrackProcessor(track);
const reader = media_processor.readable.getReader();
while (true) {
const result = await reader.read();
if (result.done) break;
let frame = result.value;
if (encoder.encodeQueueSize > 2) {
// Too many frames in flight, encoder is overwhelmed
// let's drop this frame.
frame.close();
} else {
frame_counter++;
const insert_keyframe = frame_counter % 150 === 0;
encoder.encode(frame, { keyFrame: insert_keyframe });
frame.close();
}
}
Spezifikationen
Specification |
---|
WebCodecs # videoframe-interface |
Browser-Kompatibilität
BCD tables only load in the browser