Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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.discardedFrames Schreibgeschützt

Eine Zahl, die angibt, wie viele Frames der Prozessor verworfen hat.

MediaStreamTrackProcessor.readable Schreibgeschützt

Gibt einen ReadableStream zurück.

MediaStreamTrackProcessor.totalFrames Schreibgeschü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.

js
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:

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