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 einen VideoFrame
.
Kodierte Daten (EncodedVideoChunk
) oder ein Fehler werden schließlich über die im VideoEncoder
-Konstruktor bereitgestellten Rückrufe zurückgegeben.
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, was dem Benutzeragenten Flexibilität bietet, zu entscheiden, ob dieser Frame als Schlüsselbild kodiert werden soll. Wenntrue
, bedeutet dies, dass der 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
-
Ausgelöst, wenn der
state
nicht"configured"
ist. DataError
DOMException
-
Ausgelöst, wenn der
chunk
nicht dekodiert werden kann, da er auf andere Frames zum Dekodieren angewiesen ist.
Beispiele
Im folgenden Beispiel wird encode
ein VideoFrame
und der options-Parameter übergeben, der angibt, dass dieser Frame als Schlüsselbild betrachtet werden sollte.
encoder.encode(frame, { keyFrame: true });
Festlegen von QP-Werten 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
Specification |
---|
WebCodecs # dom-videoencoder-encode |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
encode |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support