VideoEncoder: configure() 方法

有限可用性

此功能不是基线功能,因为它在一些最广泛使用的浏览器中无法使用。

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中。

注意:此功能在专用 Web Workers 中可用。

configure() 方法是 VideoEncoder 接口的方法,它将编码器的state 更改为“configured”,并异步准备编码器以接受使用指定参数进行编码的 VideoEncoder。如果编码器不支持指定的参数或由于其他原因无法初始化,则会通过提供给 VideoEncoder 构造函数的错误回调报告错误。

如果 VideoEncoder 之前已配置,则新的配置将在所有先前任务完成之前不会应用。

语法

js
configure(config)

参数

config

包含以下成员的字典对象

codec

包含 有效编解码器字符串 的字符串。有关编解码器字符串构造的详细信息,请参见 "编解码器" 参数

width 可选

表示每个输出 EncodedVideoChunk 的宽度(以像素为单位),在进行任何比例调整之前。

height 可选

表示每个输出 EncodedVideoChunk 的高度(以像素为单位),在进行任何比例调整之前。

displayWidth 可选

表示每个输出 EncodedVideoChunk 的预期显示宽度(以像素为单位),在显示时。

displayHeight 可选

表示每个输出 EncodedVideoChunk 的垂直尺寸(以像素为单位),在显示时。

hardwareAcceleration

提示,用于配置此编解码器的硬件加速方法。以下选项之一:

  • "no-preference"
  • "prefer-hardware"
  • "prefer-software"
bitrate

包含编码视频的平均比特率(以每秒比特数为单位)的整数。

framerate

包含预期帧速率(以每秒帧数为单位)的整数。

alpha

字符串,指示在编码之前是否应该保留或丢弃 VideoFrame 输入的 alpha 分量。以下选项之一:

  • "discard"(默认)
  • "keep"
scalabilityMode

包含编码可扩展性模式标识符的字符串,如 WebRTC 中定义。

bitrateMode 可选

包含比特率模式的字符串。以下选项之一:

"constant"

编码器将以恒定比特率为目标。

"variable"(默认)

编码器将以可变比特率为目标,允许对复杂信号使用更多空间,对较不复杂的信号使用更少空间。

"quantizer"

编码器将忽略 bitrate 选项,而是使用为 VideoEncoder.encode()options 参数指定的每个帧的编解码器特定量化器值。

latencyMode 可选

包含配置此编解码器延迟行为的值的字符串。以下选项之一:

"quality"(默认)

编码器应针对编码质量进行优化。

"realtime"

编码器应针对低延迟进行优化,甚至可能丢弃帧以符合 framerate

返回值

无(undefined)。

异常

TypeError

如果提供的 config 无效,则抛出此异常。

InvalidStateError DOMException

如果 state"closed",则抛出此异常。

NotSupportedError DOMException

如果提供的 config 有效,但用户代理无法提供可以解码此配置文件的编解码器,则抛出此异常。

示例

以下示例创建了一个新的 VideoEncoder 并使用一些可用选项对其进行配置。

js
const init = {
  output: handleChunk,
  error: (e) => {
    console.log(e.message);
  },
};

let config = {
  codec: "vp8",
  width: 640,
  height: 480,
  bitrate: 2_000_000, // 2 Mbps
  framerate: 30,
};

let encoder = new VideoEncoder(init);
encoder.configure(config);

规范

规范
WebCodecs
# dom-videoencoder-configure

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。