VideoEncoder: Methode encode()

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 beim VideoEncoder-Konstruktor bereitgestellten Rückruffunktionen zurückgegeben.

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 die Flexibilität gibt, zu entscheiden, ob dieses Bild als Schlüsselbild kodiert werden soll. Wenn true, bedeutet dies, dass das angegebene Bild als Schlüsselbild kodiert werden muss.

vp9 Optional

Kodierungsoptionen für den VP9-Codec.

quantizer

Frame-Quantisiererwert von 0 bis 63. Wirksam nur, wenn VideoEncoder mit dem quantizer-Bitraten-Modus konfiguriert wurde.

av1 Optional

Kodierungsoptionen für den AV1-Codec.

quantizer

Frame-Quantisiererwert von 0 bis 63. Wirksam nur, wenn VideoEncoder mit dem quantizer-Bitraten-Modus konfiguriert wurde.

avc Optional

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

quantizer

Frame-Quantisiererwert von 0 bis 51. Wirksam nur, wenn VideoEncoder mit dem quantizer-Bitraten-Modus konfiguriert wurde.

hevc Optional

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

quantizer

Frame-Quantisiererwert von 0 bis 51. Wirksam nur, wenn VideoEncoder mit dem quantizer-Bitraten-Modus konfiguriert wurde.

Rückgabewert

Keine (undefined).

Ausnahmen

InvalidStateError DOMException

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

DataError DOMException

Wird ausgelöst, wenn die Drehung und das Spiegeln des angegebenen frame-Objekts nicht mit der Drehung und dem Spiegeln des ersten an encode() übergebenen VideoFrame (die "aktive Orientierung") übereinstimmen.

Beispiele

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

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

Festlegen eines QP-Werts pro Frame zur Kodierung 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