RTCEncodedVideoFrame: data-Eigenschaft
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Die data
-Eigenschaft des RTCEncodedVideoFrame
-Interfaces gibt einen Puffer zurück, der die Frame-Daten enthält.
Wert
Ein ArrayBuffer
.
Beispiele
Dieses Beispiel WebRTC encoded transform zeigt, wie Sie die Frame-Daten in einer transform()
-Funktion eines TransformStream
abrufen und alle Bits negieren könnten.
Die transform()
-Funktion erstellt eine DataView
auf dem Puffer in der Frame-data
-Eigenschaft und erstellt auch eine Ansicht auf einem neuen ArrayBuffer
.
Dann schreibt sie die invertierten Bytes in den ursprünglichen Daten in den neuen Puffer, weist den Puffer der codierten Frame-data
-Eigenschaft zu und reiht das modifizierte Frame in den Stream ein.
addEventListener("rtctransform", (event) => {
const transform = new TransformStream({
async transform(encodedFrame, controller) {
// Reconstruct the original frame.
const view = new DataView(encodedFrame.data);
// Construct a new buffer
const newData = new ArrayBuffer(encodedFrame.data.byteLength);
const newView = new DataView(newData);
// Negate all bits in the incoming frame
for (let i = 0; i < encodedFrame.data.byteLength; ++i) {
newView.setInt8(i, ~view.getInt8(i));
}
encodedFrame.data = newData;
controller.enqueue(encodedFrame);
},
});
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
Beachten Sie, dass der hier gezeigte umgebende Code in Using WebRTC Encoded Transforms beschrieben wird.
Spezifikationen
Specification |
---|
WebRTC Encoded Transform # dom-rtcencodedvideoframe-data |
Browser-Kompatibilität
BCD tables only load in the browser