RTCEncodedVideoFrame: data-Eigenschaft

Hinweis: Dieses Feature ist verfügbar in Dedicated Web Workers.

Die data-Eigenschaft des RTCEncodedVideoFrame-Interfaces gibt einen Puffer zurück, der die Frame-Daten enthält.

Wert

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.

js
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

Siehe auch