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
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 auffalse
gesetzt ist und dem User-Agent Flexibilität gibt, zu entscheiden, ob dieses Frame als Schlüsselbild kodiert werden soll. Wenntrue
, 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
mitquantizer
-Bitratenmodus konfiguriert wurde.
av1
Optional-
Kodierungsoptionen für den AV1-Codec.
quantizer
-
Frame-Quantizer-Wert von 0 bis 63. Nur effektiv, wenn
VideoEncoder
mitquantizer
-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
mitquantizer
-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
mitquantizer
-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.
encoder.encode(frame, { keyFrame: true });
Einstellung des QP-Wertes pro Frame zum Kodieren einzelner Frames.
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 |