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 des VideoEncoder
-Interfaces kodiert asynchron ein VideoFrame
.
Kodierte Daten (EncodedVideoChunk
) oder ein Fehler werden schließlich über die Rückrufe zurückgegeben, die dem Konstruktor von VideoEncoder
ü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
, der standardmäßig auffalse
gesetzt ist und dem Benutzeragenten Flexibilität gibt zu entscheiden, ob dieses Frame als Schlüsselbild kodiert werden soll. Wenntrue
, zeigt dies an, dass das 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
mitquantizer
Bitratenmodus konfiguriert wurde.
av1
Optional-
Kodierungsoptionen für den AV1-Codec.
quantizer
-
Frame-Quantisierungswert von 0 bis 63. Nur wirksam, wenn
VideoEncoder
mitquantizer
Bitratenmodus konfiguriert wurde.
avc
Optional-
Kodierungsoptionen für den AVC (H.264)-Codec.
quantizer
-
Frame-Quantisierungswert von 0 bis 51. Nur wirksam, wenn
VideoEncoder
mitquantizer
Bitratenmodus konfiguriert wurde.
hevc
Optional-
Kodierungsoptionen für den HEVC (H.265)-Codec.
quantizer
-
Frame-Quantisierungswert von 0 bis 51. Nur wirksam, 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
nicht dekodiert werden kann, da er auf andere Frames zur Dekodierung angewiesen ist.
Beispiele
Im folgenden Beispiel wird encode
ein VideoFrame
übergeben sowie der Optionsparameter, der angibt, dass dieses Frame als Schlüsselbild betrachtet werden soll.
encoder.encode(frame, { keyFrame: true });
Festlegen eines pro Bild-Quantisierungswerts für die Kodierung einzelner Bilder.
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
BCD tables only load in the browser