RTCRtpScriptTransformer: readable-Eigenschaft

Limited availability

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

Die schreibgeschützte Eigenschaft readable der Schnittstelle RTCRtpScriptTransformer gibt eine Instanz des ReadableStream zurück, die als Quelle für kodierte Medienrahmen dient.

Wenn die entsprechende RTCRtpScriptTransform in die WebRTC-Sender- und Empfänger-Pipelines eingefügt wird, kann dieser Stream mit ausgehenden oder eingehenden kodierten Medienrahmen (RTCEncodedVideoFrame oder RTCEncodedAudioFrame) gefüllt werden. Eine kodierte WebRTC-Transformation kann die Rahmen lesen, sie bei Bedarf modifizieren und dann zurück in die WebRTC-Pipeline senden, indem sie an RTCRtpScriptTransformer.writable geschrieben werden. Eine übliche Methode, diese Operation auszuführen, ist das Durchleiten der Rahmen durch einen TransformStream.

Wert

Beispiele

Das folgende Beispiel zeigt, wie readable durch einen TransformStream zu RTCRtpScriptTransformer.writable geleitet wird.

js
addEventListener("rtctransform", (event) => {
  let transform;
  // Select a transform based on passed options
  if (event.transformer.options.name == "senderTransform")
    transform = createSenderTransform(); // A TransformStream
  else if (event.transformer.options.name == "receiverTransform")
    transform = createReceiverTransform(); // A TransformStream
  else return;

  // Pipe frames from the readable to writeable through TransformStream
  event.transformer.readable
    .pipeThrough(transform)
    .pipeTo(event.transformer.writable);
});

Der Code implementiert einen Handler für das rtctransform-Ereignis, das beim globalen Worker-Objekt beim Erstellen der entsprechenden RTCRtpScriptTransform ausgelöst wird und wenn neue Rahmen zur Verarbeitung eingereiht werden. event.transformer ist der RTCRtpScriptTransformer, der über eine readable- und writable-Eigenschaft verfügt.

Ein anderer TransformStream wird erstellt, um ausgehende und eingehende Rahmen zu verarbeiten, wobei createSenderTransform() oder createReceiverTransform() verwendet werden (Implementierungen nicht gezeigt). Der Ereignishandler wählt den richtigen Transform-Stream basierend auf den übergebenen Optionen aus dem Konstruktor RTCRtpScriptTransform und weist ihn transform zu.

Der Code ruft ReadableStream.pipeThrough() für das readable auf, um kodierte Rahmen durch den ausgewählten TransformStream zu leiten, und dann ReadableStream.pipeTo(), um sie zu RTCRtpScriptTransformer.writable zu leiten.

Spezifikationen

Specification
WebRTC Encoded Transform
# dom-rtcrtpscripttransformer-readable

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
readable

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch