RTCRtpScriptTransformer: writable-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 writable des RTCRtpScriptTransformer-Interfaces gibt eine WritableStream-Instanz zurück, die als Ziel für kodierte Medien-Frames verwendet werden kann, die in die entsprechende RTCRtpScriptTransformer.readable eingereiht wurden.

Wenn der entsprechende RTCRtpScriptTransform in die Sender- und Empfänger-Pipelines von WebRTC eingefügt wird, können kodierte Medien-Frames (RTCEncodedVideoFrame oder RTCEncodedAudioFrame) in die RTCRtpScriptTransformer.readable eingereiht werden. Ein WebRTC-Encoded-Transform kann die Frames aus readable lesen, sie nach Bedarf modifizieren und sie dann zurück in die WebRTC-Pipeline senden, indem sie an dieses writable gesendet werden. Ein gängiger Weg, diese Operation auszuführen, besteht darin, die Frames durch einen TransformStream zu leiten.

Wert

Beispiele

Das folgende Beispiel zeigt, wie RTCRtpScriptTransformer.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 im globalen Worker-Objekt beim Erstellen des entsprechenden RTCRtpScriptTransform und wenn neue Frames zur Verarbeitung eingereiht werden, ausgelöst wird. event.transformer ist der RTCRtpScriptTransformer, der die writable- und readable-Eigenschaften hat.

Ein anderer TransformStream wird erstellt, um ausgehende und eingehende Frames zu verarbeiten, mittels createSenderTransform() oder createReceiverTransform(), jeweils (Implementierungen nicht gezeigt). Der Ereignis-Handler wählt den richtigen Transform-Stream basierend auf Optionen, die vom RTCRtpScriptTransform Konstruktor übergeben werden, und weist ihn transform zu.

Der Code ruft ReadableStream.pipeThrough() auf dem readable auf, um kodierte Frames durch den ausgewählten TransformStream zu leiten, und dann ReadableStream.pipeTo(), um sie an die RTCRtpScriptTransformer.writable zu leiten.

Spezifikationen

Specification
WebRTC Encoded Transform
# dom-rtcrtpscripttransformer-writable

Browser-Kompatibilität

BCD tables only load in the browser