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 nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Die generateKeyFrame()-Methode der RTCRtpScriptTransformer-Schnittstelle veranlasst einen Video-Encoder, ein Schlüsselbild zu erzeugen.
Ein String, der die "Einschränkungskennung" ("RID") des Streams/Encoders enthält, der das neue Schlüsselbild erzeugen muss.
Der Wert muss zwischen 1 und 255 Zeichen lang sein (einschließlich) und darf nur alphanumerische Zeichen, Unterstrich und Bindestrich (A-Z, a-z, 0-9, -, _) enthalten. RIDs sind case-sensitive und müssen einzigartig für den peer-to-peer Kommunikationskanal sein.
Der erste Encoder, der mit dem angegebenen rid übereinstimmt, wird verwendet. Wenn kein Encoder mit dem rid übereinstimmt, wird der erste Encoder verwendet, und rid wird auf die Einschränkungen des Encoders gesetzt.
Ein Promise, das sich mit dem Timestamp des Rahmens erfüllt oder mit einem Ausnahme-Wert abgelehnt wird.
Der Encoder verarbeitet keine Video-Frames oder ist undefined.
TypeErrorDas bereitgestellte rid entspricht nicht den Grammatik-Anforderungen.
NotFoundErrorEs gibt keinen Video-Encoder. Dies kann auftreten, wenn der entsprechende RTCRtpSender nicht aktiv ist oder sein Track beendet wurde.
Diese Methode kann von einem Transformer aufgerufen werden, der ausgehende kodierte Video-Frames verarbeitet, um das Senden eines neuen vollständigen (Schlüssel-)Frames zu erzwingen. Es könnte von einem WebRTC Encoded Transform benötigt werden, der Frames verschlüsselt, um sicherzustellen, dass, wenn ein neuer Verschlüsselungsschlüssel hinzugefügt wird, ein mit diesem Schlüssel verschlüsselter Schlüssel-Frame so schnell wie möglich gesendet wird.
Der Sender kann eine RID (auch als "Einschränkungskennung" oder "RTP-Stream-ID" bezeichnet) angeben, um zu steuern, welcher Codec den neuen Schlüssel-Frame erzeugt. Ein Stream kann (Simulcast) mehrere Versionen derselben Quelle enthalten, jede mit unterschiedlichen Eigenschaften wie Auflösung und Bildrate. Die RID wird verwendet, um einen bestimmten RTP-Stream anzugeben und damit den Encoder, der einen neuen Frame erzeugen soll. Beachten Sie, dass die verfügbaren RID-Werte festgelegt werden, wenn der Transceiver, der von der Verbindung verwendet wird, erstellt wird. Die verwendeten RID-Werte können abgefragt werden, indem RTCRtpSender.getParameters() aufgerufen wird und die encodings-Eigenschaft des zurückgegebenen Werts überprüft wird.
Das von der Methode zurückgegebene Promise wird kurz vor der Einreihung des entsprechenden Schlüssel-Frames in einem RTCRtpScriptTransformer-lesbaren Bereich erfüllt.
Hinweis: Das Senden mehrerer Streams (RID) gleichzeitig wird als "Simulcast" bezeichnet. Diese Funktion bietet einem middlebox denselben Stream in mehreren Qualitätsstufen, wodurch er die Bandbreite verwalten kann, indem er selektiv die entsprechenden Level an die Teilnehmer überträgt und die Auflösung schnell im laufenden Betrieb umschaltet (d.h. Umschaltung auf die Übertragung von Videos in niedriger Qualität für alle außer dem aktiven Sprecher). Der Empfänger erhält immer nur einen Stream, weshalb die vergleichbare Empfängermethode RTCRtpScriptTransformer.sendKeyFrameRequest() nicht erfordert, dass eine RID festgelegt wird.
Das untenstehende Beispiel zeigt, wie der Haupt-Thread einen Verschlüsselungsschlüssel an eine Sender-Transformation übergeben und den Codec zur Erzeugung eines Schlüssel-Frames anstoßen könnte.
Beachten Sie, dass der Haupt-Thread keinen direkten Zugriff auf das RTCRtpScriptTransformer-Objekt hat, daher muss er den Schlüssel und die RID an den Worker übermitteln. Hier tun wir das mit einem MessageChannel, wobei der zweite Port an den im Worker laufenden Transformer-Code übertragen wird. Der Code geht davon aus, dass bereits eine Peer-Verbindung besteht, und videoSender ist ein RTCRtpSender.
Der rtctransform-Ereignis-Handler im Worker erhält den Port und benutzt ihn, um auf message-Events zu lauschen. Wenn ein Event empfangen wird, holt er sich rid und key und ruft dann generateKeyFrame() auf.
| WebRTC Encoded Transform # dom-rtcrtpscripttransformer-generatekeyframe |
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.