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

Die encode()-Methode des VideoEncoder-Interfaces kodiert asynchron ein VideoFrame. Kodierte Daten (EncodedVideoChunk) oder ein Fehler werden schließlich über die Rückrufe zurückgegeben, die dem Konstruktor von VideoEncoder ü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, der standardmäßig auf false gesetzt ist und dem Benutzeragenten Flexibilität gibt zu entscheiden, ob dieses Frame als Schlüsselbild kodiert werden soll. Wenn true, zeigt dies an, dass das gegebene Frame als Schlüsselbild kodiert werden muss.

vp9 Optional

Kodierungsoptionen für den VP9-Codec.

quantizer

Frame-Quantisierungswert von 0 bis 63. Nur wirksam, wenn VideoEncoder mit quantizer Bitratenmodus konfiguriert wurde.

av1 Optional

Kodierungsoptionen für den AV1-Codec.

quantizer

Frame-Quantisierungswert von 0 bis 63. Nur wirksam, wenn VideoEncoder mit quantizer Bitratenmodus konfiguriert wurde.

avc Optional

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

quantizer

Frame-Quantisierungswert von 0 bis 51. Nur wirksam, wenn VideoEncoder mit quantizer Bitratenmodus konfiguriert wurde.

hevc Optional

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

quantizer

Frame-Quantisierungswert von 0 bis 51. Nur wirksam, 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 nicht dekodiert werden kann, da er auf andere Frames zur Dekodierung angewiesen ist.

Beispiele

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

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

Festlegen eines pro Bild-Quantisierungswerts für die Kodierung einzelner Bilder.

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

BCD tables only load in the browser