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
Ein WritableStream
.
Beispiele
Das folgende Beispiel zeigt, wie RTCRtpScriptTransformer.readable
durch einen TransformStream
zu RTCRtpScriptTransformer.writable
geleitet wird.
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