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

View in English Always switch to English

RTCRtpSender: transform-Eigenschaft

Baseline 2025
Newly available

Since ⁨October 2025⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die transform-Eigenschaft des RTCRtpSender-Objekts wird verwendet, um einen Transform-Stream (TransformStream), der in einem Worker-Thread läuft, in die Sender-Pipeline einzufügen. Dies ermöglicht es, Stream-Transformationen auf kodierte Video- und Audioframes anzuwenden, nachdem sie von einem Codec ausgegeben wurden und bevor sie gesendet werden.

Der Transform, der hinzugefügt werden soll, wird mit einem RTCRtpScriptTransform und seinem zugehörigen Worker definiert. Wenn der Transform synchron unmittelbar nach der Erstellung des RTCRtpSender gesetzt wird, erhält er den ersten vollständigen Frame, der vom Encoder des Senders erzeugt wird.

Wert

Ein RTCRtpScriptTransform oder null, wenn der Sender keinen zugehörigen Transform-Stream hat.

Beispiel

Dieses Beispiel zeigt, wie Sie Video von der Webcam eines Benutzers über WebRTC streamen können, indem ein WebRTC-kodierter Transform hinzugefügt wird, um die ausgehenden Streams zu modifizieren. Beachten Sie, dass dies Teil eines größeren Beispiels im Leitfaden Verwendung von WebRTC-kodierten Transformationen ist.

Der Code geht davon aus, dass eine RTCPeerConnection namens peerConnection bereits mit einem Remote-Peer verbunden ist. Zunächst wird ein MediaStreamTrack erhalten, indem getUserMedia() verwendet wird, um einen Video-MediaStream von einem Mediengerät zu erhalten, und dann die Methode MediaStream.getTracks() aufgerufen wird, um den ersten MediaStreamTrack im Stream zu erhalten.

Der Track wird mit addTrack() zur Peer-Verbindung hinzugefügt. Dies gibt einen neuen RTCRtpSender zurück, der verwendet wird, um ihn zu senden.

js
const mediaStream = await navigator.mediaDevices.getUserMedia({ video: true });
const [track] = mediaStream.getTracks();
const videoSender = peerConnection.addTrack(track, mediaStream);

Der oben gezeigte Code richtet die Verbindung ein und beginnt, den Track zu senden. Um einen Transform-Stream in die Pipeline einzufügen, müssen wir einen RTCRtpScriptTransform konstruieren und dem transform-Eigenschaft des Senders zuweisen. Da der Transform unmittelbar nach der Erstellung des RTCRtpSender konstruiert wird, erhält er den ersten Frame, der vom Encoder des Senders erzeugt wird, bevor er gesendet wird.

js
const worker = new Worker("worker.js");
videoSender.transform = new RTCRtpScriptTransform(worker, {
  name: "senderTransform",
});

Beachten Sie, dass Sie den Transform jederzeit hinzufügen können. Indem Sie ihn jedoch unmittelbar nach dem Aufruf von addTrack() hinzufügen, erhält der Transform den ersten kodierten Frame, der gesendet wird.

Spezifikationen

Specification
WebRTC Encoded Transform
# dom-rtcrtpsender-transform

Browser-Kompatibilität

Siehe auch