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: Dieses Feature ist verfügbar in Dedicated Web Workers.

Die configure()-Methode des VideoEncoder-Interfaces ändert den state des Encoders auf "configured" und bereitet den Encoder asynchron darauf vor, VideoEncoders mit den angegebenen Parametern zur Kodierung zu akzeptieren. Wenn der Encoder die angegebenen Parameter nicht unterstützt oder aus anderen Gründen nicht initialisiert werden kann, wird ein Fehler über den beim Konstruktor von VideoEncoder bereitgestellten Fehler-Rückruf 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 Wörterbuchobjekt, das die folgenden Mitglieder enthält:

codec

Ein String, der einen gültigen Codec-String enthält. Siehe "codecs" parameter für Details zur Erstellung von Codec-Strings.

width Optional

Eine ganze Zahl, die die Breite jedes Ausgabe-EncodedVideoChunks in Pixel vor etwaigen Verhältnis-Anpassungen darstellt.

height Optional

Eine ganze Zahl, die die Höhe jedes Ausgabe-EncodedVideoChunks in Pixel vor etwaigen Verhältnis-Anpassungen darstellt.

displayWidth Optional

Eine ganze Zahl, die die beabsichtigte Anzeige-Breite jedes Ausgabe-EncodedVideoChunks in Pixel bei der Anzeige darstellt.

displayHeight Optional

Eine ganze Zahl, die die vertikale Dimension jedes Ausgabe-EncodedVideoChunks in Pixel bei der Anzeige darstellt.

hardwareAcceleration

Ein Hinweis, der die Hardwarebeschleunigungsmethode dieses Codecs konfiguriert. Einer von:

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

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

framerate

Eine ganze Zahl, die die erwartete Bildrate in Frames pro Sekunde enthält.

alpha

Ein String, der anzeigt, ob die Alpha-Komponente der VideoFrame-Eingaben vor der Kodierung beibehalten oder verworfen werden sollte. Einer von:

  • "discard" (Standard)
  • "keep"
scalabilityMode

Ein String, der einen Skalierbarkeitsmodus-Identifikator für die Kodierung enthält, wie in WebRTC definiert.

bitrateMode Optional

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

"constant"

Der Encoder wird auf eine konstante Bitrate abzielen.

"variable" (Standard)

Der Encoder wird auf eine variable Bitrate abzielen, bei der komplexe Signale mehr Speicher benötigen und einfachere Signale weniger.

"quantizer"

Der Encoder wird die bitrate-Option ignorieren und stattdessen codec-spezifische Quantisierungswerte verwenden, die für jedes Frame im options-Parameter an VideoEncoder.encode() angegeben sind.

latencyMode Optional

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

"quality" (Standard)

Der Encoder sollte für Kodierungsqualität optimieren.

"realtime"

Der Encoder sollte für niedrige Latenz optimieren und kann sogar Frames fallen lassen, um die framerate einzuhalten.

Rückgabewert

Keiner (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