MediaStreamTrackProcessor
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Hinweis: Diese Funktion ist nur in Dedicated Web Workers verfügbar.
Warnung: Browser unterscheiden sich darin, in welchem globalen Kontext sie diese Schnittstelle bereitstellen (z. B. in manchen Browsern nur im Fenster und in anderen nur in einem Dedicated Worker). Dadurch sind die Implementierungen nicht miteinander kompatibel. Beachten Sie dies beim Vergleich der Unterstützung.
Die Schnittstelle MediaStreamTrackProcessor der Insertable Streams for MediaStreamTrack API verarbeitet die Quelle eines Video-MediaStreamTrack-Objekts und erzeugt einen Stream von VideoFrame-Objekten.
Konstruktor
MediaStreamTrackProcessor()-
Erstellt ein neues
MediaStreamTrackProcessor-Objekt. window.MediaStreamTrackProcessor()-
Erstellt ein neues
MediaStreamTrackProcessor-Objekt auf dem Hauptthread, das sowohl Video als auch Audio verarbeiten kann.
Instanzeigenschaften
MediaStreamTrackProcessor.discardedFramesSchreibgeschützt-
Eine Zahl, die angibt, wie viele Frames der Prozessor verworfen hat.
MediaStreamTrackProcessor.readableSchreibgeschützt-
Gibt einen
ReadableStreamzurück. MediaStreamTrackProcessor.totalFramesSchreibgeschützt-
Eine Zahl, die angibt, wie viele Frames der Prozessor insgesamt empfangen hat.
Beispiele
Das folgende Beispiel stammt aus dem Artikel Unbundling MediaStreamTrackProcessor and VideoTrackGenerator. Es überträgt einen Kamera-MediaStreamTrack zur Verarbeitung an einen Worker. Der Worker erstellt eine Verarbeitungskette, die einen Sepiafilter auf die Videoframes anwendet und sie spiegelt. Die Verarbeitungskette endet in einem VideoTrackGenerator, dessen MediaStreamTrack zurückübertragen und wiedergegeben wird. Die Mediendaten durchlaufen nun in Echtzeit die Transformation außerhalb 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
| Spezifikation |
|---|
| MediaStreamTrack Insertable Media Processing using Streams> # mediastreamtrackprocessor> |
Browser-Kompatibilität
Siehe auch
VideoTrackGenerator- Einfügbare Streams für MediaStreamTrack auf developer.chrome.com
Hinweis: Dieser Artikel wurde geschrieben, bevor die API auf Worker und Video beschränkt wurde. Beachten Sie, dass darin die nicht standardisierte Version von
MediaStreamTrackProcessorverwendet wird, die den Hauptthread blockiert.