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

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

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
data

Legend

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

Full support
Full support

Siehe auch