Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

VideoEncoder: encode()-Methode

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

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 bei der Erstellung des VideoEncoder angegebenen Rückruffunktionen zurückgegeben.

Syntax

js
encode(frame)
encode(frame, options)

Parameter

frame

Ein VideoFrame-Objekt.

options Optional

Ein Objekt mit den folgenden Mitgliedern:

keyFrame Optional

Ein Boolean, das standardmäßig false ist und dem User-Agent Flexibilität gibt, zu entscheiden, ob dieser Frame als Key-Frame kodiert werden soll. Wenn true, bedeutet dies, dass der gegebene Frame als Key-Frame 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 die Rotation und Spiegelung des übergebenen frame-Objekts nicht mit der Rotation und Spiegelung des ersten an encode() übergebenen VideoFrame übereinstimmt (die "aktive Orientierung").

Beispiele

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

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

Festlegen des 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

Spezifikation
WebCodecs
# dom-videoencoder-encode

Browser-Kompatibilität