VideoEncoder: encode()-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 encode()-Methode der VideoEncoder-Schnittstelle kodiert asynchron ein VideoFrame. Kodierte Daten (EncodedVideoChunk) oder ein Fehler werden schließlich über die Rückrufe bereitgestellt, die dem VideoEncoder-Konstruktor übergeben wurden.

Syntax

js
encode(frame)
encode(frame, options)

Parameter

frame

Ein VideoFrame-Objekt.

options Optional

Ein Objekt, das die folgenden Mitglieder enthält:

keyFrame Optional

Ein boolean, das standardmäßig auf false gesetzt ist und dem User-Agent Flexibilität gibt, zu entscheiden, ob dieses Frame als Schlüsselbild kodiert werden soll. Wenn true, bedeutet dies, dass das gegebene Frame als Schlüsselbild kodiert werden muss.

vp9 Optional

Kodierungsoptionen für den VP9-Codec.

quantizer

Frame-Quantizer-Wert von 0 bis 63. Nur effektiv, wenn VideoEncoder mit quantizer-Bitratenmodus konfiguriert wurde.

av1 Optional

Kodierungsoptionen für den AV1-Codec.

quantizer

Frame-Quantizer-Wert von 0 bis 63. Nur effektiv, wenn VideoEncoder mit quantizer-Bitratenmodus konfiguriert wurde.

avc Optional

Kodierungsoptionen für den AVC (H.264)-Codec.

quantizer

Frame-Quantizer-Wert von 0 bis 51. Nur effektiv, wenn VideoEncoder mit quantizer-Bitratenmodus konfiguriert wurde.

hevc Optional

Kodierungsoptionen für den HEVC (H.265)-Codec.

quantizer

Frame-Quantizer-Wert von 0 bis 51. Nur effektiv, wenn VideoEncoder mit quantizer-Bitratenmodus konfiguriert wurde.

Rückgabewert

Keiner (undefined).

Ausnahmen

InvalidStateError DOMException

Wird ausgelöst, wenn der state nicht "configured" ist.

DataError DOMException

Wird ausgelöst, wenn der chunk aufgrund des Abhängens von anderen Frames zur Dekodierung nicht dekodiert werden kann.

Beispiele

Im folgenden Beispiel wird encode ein VideoFrame übergeben, zusammen mit dem Optionsparameter, der angibt, dass dieses Frame als Schlüsselbild betrachtet werden soll.

js
encoder.encode(frame, { keyFrame: true });

Einstellung des QP-Wertes pro Frame zum Kodieren einzelner Frames.

js
const encoder = new VideoEncoder(init);
const encoderConfig = {
  codec: "vp09.00.10.08",
  width: 800,
  height: 600,
  bitrateMode: "quantizer",
  framerate: 30,
  latencyMode: "realtime",
};
encoder.configure(encoderConfig);

const encodeOptions = { keyFrame: false };
const qp = calculateQp(codec, frame);

if (codec.includes("vp09")) {
  encodeOptions.vp9 = { quantizer: qp };
} else if (codec.includes("av01")) {
  encodeOptions.av1 = { quantizer: qp };
} else if (codec.includes("avc")) {
  encodeOptions.avc = { quantizer: qp };
} else if (codec.includes("hvc1") || codec.includes("hev1")) {
  encodeOptions.hevc = { quantizer: qp };
}

encoder.encode(frame, encodeOptions);

Spezifikationen

Specification
WebCodecs
# dom-videoencoder-encode

Browser-Kompatibilität