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
encode(frame)
encode(frame, options)
Parameter
frame-
Ein
VideoFrame-Objekt. optionsOptional-
Ein Objekt mit den folgenden Mitgliedern:
keyFrameOptional-
Ein
Boolean, das standardmäßigfalseist und dem User-Agent Flexibilität gibt, zu entscheiden, ob dieser Frame als Key-Frame kodiert werden soll. Wenntrue, bedeutet dies, dass der gegebene Frame als Key-Frame kodiert werden muss. vp9Optional-
Kodierungsoptionen für den VP9-Codec.
quantizer-
Frame-Quantisierungswert von 0 bis 63. Nur wirksam, wenn
VideoEncodermitquantizer-Bitratenmodus konfiguriert wurde.
av1Optional-
Kodierungsoptionen für den AV1-Codec.
quantizer-
Frame-Quantisierungswert von 0 bis 63. Nur wirksam, wenn
VideoEncodermitquantizer-Bitratenmodus konfiguriert wurde.
avcOptional-
Kodierungsoptionen für den AVC (H.264)-Codec.
quantizer-
Frame-Quantisierungswert von 0 bis 51. Nur wirksam, wenn
VideoEncodermitquantizer-Bitratenmodus konfiguriert wurde.
hevcOptional-
Kodierungsoptionen für den HEVC (H.265)-Codec.
quantizer-
Frame-Quantisierungswert von 0 bis 51. Nur wirksam, wenn
VideoEncodermitquantizer-Bitratenmodus konfiguriert wurde.
Rückgabewert
Keiner (undefined).
Ausnahmen
InvalidStateErrorDOMException-
Wird ausgelöst, wenn der
statenicht"configured"ist. DataErrorDOMException-
Wird ausgelöst, wenn die Rotation und Spiegelung des übergebenen
frame-Objekts nicht mit der Rotation und Spiegelung des ersten anencode()übergebenenVideoFrameü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.
encoder.encode(frame, { keyFrame: true });
Festlegen des QP-Werts pro Frame zur Kodierung 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
| Spezifikation |
|---|
| WebCodecs> # dom-videoencoder-encode> |