VideoTrackGenerator
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Hinweis: Diese Funktion ist nur in Dedicated Web Workers verfügbar.
Das VideoTrackGenerator
-Interface der Insertable Streams for MediaStreamTrack API hat eine WritableStream
-Eigenschaft, die als Quelle eines MediaStreamTrack
dient, indem sie einen Stream von VideoFrame
s als Eingabe verarbeitet.
Konstruktor
VideoTrackGenerator()
Experimentell-
Erstellt ein neues
VideoTrackGenerator
Objekt, dasVideoFrame
-Objekte akzeptiert.
Instanzeigenschaften
VideoTrackGenerator.muted
Experimentell-
Eine Boole'sche Eigenschaft, um die Erzeugung von Videoframes im Ausgabetrack vorübergehend zu stoppen oder fortzusetzen.
VideoTrackGenerator.track
Experimentell-
Der Ausgabe-
MediaStreamTrack
. VideoTrackGenerator.writable
Experimentell-
Der Eingabe-
WritableStream
.
Beispiele
Das folgende Beispiel stammt aus dem Artikel Unbundling MediaStreamTrackProcessor and VideoTrackGenerator. Es überträgt einen Kamera-MediaStreamTrack
an einen Worker zur Verarbeitung. Der Worker erstellt eine Pipeline, die einen Sepia-Ton-Filter auf die Videoframes anwendet und diese spiegelt. Die Pipeline endet in einem VideoTrackGenerator
, dessen MediaStreamTrack
zurückübertragen und gespielt wird. Die Medien fließen nun in Echtzeit durch die Transformation fern des Haupt-Threads.
const stream = await navigator.mediaDevices.getUserMedia({ video: true });
const [track] = stream.getVideoTracks();
const worker = new Worker("worker.js");
worker.postMessage({ track }, [track]);
const { data } = await new Promise((r) => {
worker.onmessage = r;
});
video.srcObject = new MediaStream([data.track]);
worker.js:
onmessage = async ({ data: { track } }) => {
const vtg = new VideoTrackGenerator();
self.postMessage({ track: vtg.track }, [vtg.track]);
const { readable } = new MediaStreamTrackProcessor({ track });
await readable
.pipeThrough(new TransformStream({ transform }))
.pipeTo(vtg.writable);
};
Spezifikationen
Specification |
---|
MediaStreamTrack Insertable Media Processing using Streams # videotrackgenerator |