RTCEncodedVideoFrame: type-Eigenschaft

Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.

Die schreibgeschützte type-Eigenschaft des RTCEncodedVideoFrame-Interfaces gibt an, ob dieser Frame ein Schlüsselbild, ein Delta-Frame oder ein leerer Frame ist.

Wert

Der Typ kann einen der folgenden Werte annehmen:

key

Dies ist ein "Schlüsselbild", das alle Informationen enthält, die zur Darstellung eines Bildes benötigt werden. Es kann ohne Bezugnahme auf andere Frames dekodiert werden.

delta

Dies ist ein "Delta-Frame", der Änderungen an einem Bild im Vergleich zu einem vorherigen Frame enthält. Der Frame kann nicht dekodiert werden, ohne Zugriff auf die referenzierten Frames zu haben.

empty

Dieser Frame enthält keine Daten. Dieser Wert ist unerwartet und kann darauf hindeuten, dass die Transformation eine Referenz auf Frames hält, nachdem sie transformiert und an RTCRtpScriptTransformer.writable übergeben wurden (nachdem das Frame-Objekt zur Haupt-Thread-WebRTC-Pipeline zurückgeschickt wurde, werden keine Daten mehr vorhanden sein).

Beispiele

Die Implementierung einer transform()-Funktion in einem WebRTC Encoded Transform kann den type betrachten und den Transformationscode basierend darauf ändern, ob es sich um ein Schlüsselbild oder einen Delta-Frame handelt:

js
const transformer = new TransformStream({
  transform: async (encodedFrame, controller) => {
    if (encodedFrame.type === "key") {
      // Apply key frame transformation
    } else if (encodedFrame.type === "delta") {
      // Apply delta frame transformation
    } else {
      // Empty
      // Check transform is not holding reference to frames after processing!
    }
    controller.enqueue(encodedFrame);
  },
});

Spezifikationen

Specification
WebRTC Encoded Transform
# dom-rtcencodedvideoframe-type

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch