RTCRtpReceiver: transform Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die transform-Eigenschaft des RTCRtpReceiver-Objekts wird verwendet, um einen Transformations-Stream (TransformStream), der in einem Worker-Thread läuft, in die Empfänger-Pipeline einzufügen. Dies ermöglicht es, dass Streaming-Transformationen auf kodierte Video- und Audioframes angewendet werden, sobald sie vom Paketierer eintreffen (bevor sie abgespielt/dargestellt werden).

Die Transformation, die hinzugefügt werden soll, wird unter Verwendung eines RTCRtpScriptTransform und seines zugehörigen Worker definiert. Wenn die Transformation im track event-Handler der Peerverbindung festgelegt wird, erhält der Transformationsstream die ersten vollständigen eingehenden Frames für das Track.

Wert

Ein RTCRtpScriptTransform, oder null, wenn der Empfänger keinen zugeordneten Transformationsstream hat.

Beispiel

Bitte beachten Sie, dass dies Teil eines größeren Beispiels im Leitfaden-Thema Verwendung von WebRTC-kodierten Transformationen ist.

Hinzufügen einer Transformation für eingehende Frames

Dieses Beispiel zeigt, wie Sie eine WebRTC-kodierte Transformation hinzufügen, um einen eingehenden Stream zu modifizieren. Der Code geht davon aus, dass es eine RTCPeerConnection namens peerConnection gibt, die bereits mit einem entfernten Peer verbunden ist.

Um einen Transformationsstream in die Pipeline für eingehende Frames hinzuzufügen, müssen wir ein RTCRtpScriptTransform konstruieren und es der transform-Eigenschaft des Empfängers zuweisen. Wir können dies im track event-Handler wie gezeigt tun. Dieses Ereignis wird an der Peerverbindung ausgelöst, wann immer das entfernte Ende einen Track sendet. Die event.receiver-Eigenschaft ist ein RTCRtpReceiver.

js
const worker = new Worker("worker.js");
peerConnection.ontrack = (event) => {
  event.receiver.transform = new RTCRtpScriptTransform(worker, {
    someOption: "receiverTransform",
  });
};

Weil die Transformation unmittelbar nach der Erstellung des RTCRtpReceiver konstruiert wird, erhält sie den ersten eingehenden Frame. Das Objekt, das als zweiter Parameter im Konstruktor von RTCRtpScriptTransform übergeben wird, wird an den Worker-Thread gesendet und kann durch Worker-Code verwendet werden, um eine andere Transformation für die eingehenden Frames bereitzustellen als für die ausgehenden Frames verwendet wird.

Spezifikationen

Specification
WebRTC Encoded Transform
# dom-rtcrtpsender-transform

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch