RTCEncodedVideoFrame: type-Eigenschaft

Baseline 2023
Newly available

Since August 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

Die type-Eigenschaft des RTCEncodedVideoFrame-Interfaces zeigt an, ob dieses Frame ein Schlüsselbild (key frame), ein Delta-Frame oder ein leeres Frame ist.

Wert

Der Typ kann einen der folgenden Werte haben:

key

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

delta

Dies ist ein "Delta-Frame", das Änderungen an einem Bild im Verhältnis zu einem vorherigen Frame enthält. Das Frame kann nicht dekodiert werden, ohne Zugang zu den Frame(s) zu haben, auf die es sich bezieht.

empty

Dieses Frame enthält keine Daten. Dieser Wert ist unerwartet und kann darauf hindeuten, dass die Transformation eine Referenz zu Frames hält, nachdem sie transformiert und an RTCRtpScriptTransformer.writable weitergeleitet wurden (nachdem das Worker-Seiten-Frame-Objekt zurück zur Haupt-Thread-WebRTC-Pipeline übertragen wurde, wird es keine Daten mehr haben).

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 ein Delta-Frame handelt:

js
const transformer = new TransformStream({
  async transform(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

Siehe auch