VideoEncoder: encode()-Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
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> |