VideoEncoder: configure()-Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

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

Die configure()-Methode der VideoEncoder-Schnittstelle ändert den state des Encoders zu "configured" und bereitet den Encoder asynchron darauf vor, VideoEncoder-Eingaben zum Kodieren mit den angegebenen Parametern zu akzeptieren. Falls der Encoder die angegebenen Parameter nicht unterstützt oder aus anderen Gründen nicht initialisiert werden kann, wird ein Fehler über den im VideoEncoder-Konstruktor bereitgestellten Fehler-Callback gemeldet.

Falls der VideoEncoder zuvor konfiguriert wurde, wird die neue Konfiguration erst angewendet, wenn alle vorherigen Aufgaben abgeschlossen sind.

Syntax

js
configure(config)

Parameter

config

Ein Dictionary-Objekt mit den folgenden Elementen:

codec

Ein String, der einen gültigen Codec-String enthält. Siehe "codecs" Parameter für Details zur Konstruktion des Codec-Strings.

width Optional

Eine Ganzzahl, die die Breite jedes Ausgabe-EncodedVideoChunk in Pixeln darstellt, bevor Anpassungen des Verhältnisses vorgenommen werden.

height Optional

Eine Ganzzahl, die die Höhe jedes Ausgabe-EncodedVideoChunk in Pixeln darstellt, bevor Anpassungen des Verhältnisses vorgenommen werden.

displayWidth Optional

Eine Ganzzahl, die die beabsichtigte Anzeigebreite jedes Ausgabe-EncodedVideoChunk in Pixeln bei der Anzeige darstellt.

displayHeight Optional

Eine Ganzzahl, die die vertikale Dimension jedes Ausgabe-EncodedVideoChunk in Pixeln bei der Anzeige darstellt.

hardwareAcceleration

Ein Hinweis zur Konfiguration der Hardwarebeschleunigungsmethode dieses Codecs. Einer von:

  • "no-preference"
  • "prefer-hardware"
  • "prefer-software"
bitrate

Eine Ganzzahl, die die durchschnittliche Bitrate des kodierten Videos in Einheiten von Bits pro Sekunde enthält.

framerate

Eine Ganzzahl, die die erwartete Bildrate in Bildern pro Sekunde enthält.

alpha

Ein String, der angibt, ob die Alphakomponente der VideoFrame-Eingaben beibehalten oder vor dem Kodieren verworfen werden soll. Einer von:

  • "discard" (Standardeinstellung)
  • "keep"
scalabilityMode

Ein String, der einen Identifier für einen kodierenden Skalierbarkeitsmodus enthält, wie in WebRTC definiert.

bitrateMode Optional

Ein String, der einen Bitratenmodus enthält. Einer von:

"constant"

Der Encoder wird eine konstante Bitrate anstreben.

"variable" (Standardeinstellung)

Der Encoder wird eine variable Bitrate anstreben und dadurch bei komplexen Signalen mehr Speicherplatz und bei weniger komplexen Signalen weniger Speicherplatz verwenden.

"quantizer"

Der Encoder wird die bitrate-Option außer Acht lassen und stattdessen codec-spezifische Quantisiererwerte verwenden, die für jeden Frame im options-Parameter von VideoEncoder.encode() angegeben werden.

latencyMode Optional

Ein String, der einen Wert enthält, mit dem das Latenzverhalten dieses Codecs konfiguriert wird. Einer von:

"quality" (Standardeinstellung)

Der Encoder sollte für die Kodierungsqualität optimieren.

"realtime"

Der Encoder sollte für geringe Latenz optimieren und kann sogar Frames auslassen, um die framerate einzuhalten.

Rückgabewert

Keine (undefined).

Ausnahmen

TypeError

Wird ausgelöst, wenn das bereitgestellte config ungültig ist.

InvalidStateError DOMException

Wird ausgelöst, wenn der state "closed" ist.

NotSupportedError DOMException

Wird ausgelöst, wenn das bereitgestellte config gültig ist, aber der Benutzeragent keinen Codec bereitstellen kann, der dieses Profil dekodieren kann.

Beispiele

Das folgende Beispiel erstellt einen neuen VideoEncoder und konfiguriert ihn mit einigen der verfügbaren Optionen.

js
const init = {
  output: handleChunk,
  error: (e) => {
    console.log(e.message);
  },
};

let config = {
  codec: "vp8",
  width: 640,
  height: 480,
  bitrate: 2_000_000, // 2 Mbps
  framerate: 30,
};

let encoder = new VideoEncoder(init);
encoder.configure(config);

Spezifikationen

Specification
WebCodecs
# dom-videoencoder-configure

Browser-Kompatibilität

BCD tables only load in the browser