Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit August 2023 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Der RTCEncodedVideoFrame der WebRTC API repräsentiert einen kodierten Videoframe in der WebRTC-Empfänger- oder Sender-Pipeline, der mithilfe eines WebRTC Encoded Transform modifiziert werden kann.
Kopierkonstruktor. Erstellt ein neues und unabhängiges RTCEncodedVideoFrame-Objekt aus einem anderen Frame und überschreibt optional einige der kopierten Metadaten.
Gibt zurück, ob der aktuelle Frame ein Key-Frame oder ein Delta-Frame ist.
RTCEncodedVideoFrame.timestamp SchreibgeschütztGibt den Zeitstempel zurück, zu dem das Sampling des Frames begann.
RTCEncodedVideoFrame.dataGibt einen Puffer mit den kodierten Frame-Daten zurück.
Gibt die mit dem Frame verknüpften Metadaten zurück.
Rohvideodaten werden als Folge von Frames erzeugt, wobei jeder Frame ein zweidimensionales Array von Pixelwerten ist. Videokodierer wandeln diesen Rohinput in eine komprimierte Darstellung des Originals für die Übertragung und Speicherung um. Ein allgemeiner Ansatz besteht darin, "Key-Frames" zu senden, die genügend Informationen enthalten, um ein ganzes Bild mit relativ niedriger Rate wiederzugeben, und zwischen den Key-Frames viele viel kleinere "Delta-Frames" zu senden, die nur die Änderungen seit dem vorherigen Frame kodieren.
Es gibt viele verschiedene Codecs, wie H.264, VP8 und VP9, die jeweils unterschiedliche Kodierprozesse und Konfigurationen haben, welche unterschiedliche Kompromisse zwischen Kompressionseffizienz und Videoqualität bieten.
Der RTCEncodedVideoFrame repräsentiert einen einzelnen Frame, der mit einem bestimmten Videokodierer kodiert wurde. Die type-Eigenschaft zeigt an, ob der Frame ein "Key" oder "Delta"-Frame ist, und Sie können die getMetadata()-Methode verwenden, um weitere Details über die Kodierungsmethode zu erhalten. Die data-Eigenschaft bietet Zugriff auf die kodierten Bilddaten des Frames, die dann modifiziert ("transformiert") werden können, wenn Frames gesendet oder empfangen werden.
Dieser Codeausschnitt zeigt einen Handler für das rtctransform-Ereignis in einem Worker, der einen TransformStream implementiert, und leitet kodierte Frames von event.transformer.readable zu event.transformer.writable um (event.transformer ist ein RTCRtpScriptTransformer, das Pendant auf der Worker-Seite zu RTCRtpScriptTransform).
Wenn der Transformer in einen Videostream eingefügt wird, wird die transform()-Methode mit einem RTCEncodedVideoFrame aufgerufen, wann immer ein neuer Frame in event.transformer.readable eingereiht wird. Die transform()-Methode zeigt, wie dies gelesen, durch Invertieren der Bits modifiziert und dann im Controller eingereiht werden kann (dies leitet es letztendlich zu event.transformer.writable und dann zurück in die WebRTC-Pipeline).
Beachten Sie, dass vollständigere Beispiele in Verwendung von WebRTC Encoded Transforms bereitgestellt werden.
| WebRTC Encoded Transform # rtcencodedvideoframe |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.