RTCEncodedVideoFrame: type-Eigenschaft
Baseline 2023Newly 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:
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 |