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 einen VideoFrame. Kodierte Daten (EncodedVideoChunk) oder ein Fehler werden schließlich über die im VideoEncoder-Konstruktor bereitgestellten Rückrufe 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, was dem Benutzeragenten Flexibilität bietet, zu entscheiden, ob dieser Frame als Schlüsselbild kodiert werden soll. Wenn true, bedeutet dies, dass der 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

Ausgelöst, wenn der state nicht "configured" ist.

DataError DOMException

Ausgelöst, wenn der chunk nicht dekodiert werden kann, da er auf andere Frames zum Dekodieren angewiesen ist.

Beispiele

Im folgenden Beispiel wird encode ein VideoFrame und der options-Parameter übergeben, der angibt, dass dieser Frame als Schlüsselbild betrachtet werden sollte.

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

Festlegen von QP-Werten 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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
encode

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support