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.
Die VideoTrackGenerator
-Schnittstelle der Insertable Streams for MediaStreamTrack API verfügt über eine WritableStream
-Eigenschaft, die als Quelle für einen MediaStreamTrack
dient, indem sie einen Stream von VideoFrame
s als Eingabe konsumiert.
Konstruktor
VideoTrackGenerator()
Experimentell-
Erstellt ein neues
VideoTrackGenerator
-Objekt, dasVideoFrame
-Objekte akzeptiert.
Instanz-Eigenschaften
VideoTrackGenerator.muted
Experimentell-
Eine Boolesche Eigenschaft, um die Erzeugung von Videobildern im Ausgabetrack vorübergehend zu unterbrechen oder fortzusetzen.
VideoTrackGenerator.track
Experimentell-
Der Ausgabestream
MediaStreamTrack
. VideoTrackGenerator.writable
Experimentell-
Der Eingabe-
WritableStream
.
Beispiele
Das folgende Beispiel stammt aus dem Artikel Unbundling MediaStreamTrackProcessor and VideoTrackGenerator. Es überträgt eine Kamera- MediaStreamTrack
an einen Worker zur Verarbeitung. Der Worker erstellt eine Pipeline, die einen Sepia-Ton-Filter auf die Videobilder anwendet und diese spiegelt. Die Pipeline endet in einem VideoTrackGenerator
, dessen MediaStreamTrack
zurückübertragen und abgespielt wird. Die Medien fließen nun in Echtzeit durch die Transformation abseits des Hauptthreads.
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 |