VideoEncoder: configure() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

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

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

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

语法

js
configure(config)

参数

config

一个包含以下成员的字典对象

codec

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

width 可选

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

height 可选

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

displayWidth 可选

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

displayHeight 可选

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

hardwareAcceleration

一个提示,用于配置此编解码器的硬件加速方法。可选值包括:

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

一个整数,包含编码视频的平均比特率(单位:比特/秒)。

framerate

一个整数,包含预期的帧率(单位:帧/秒)。

alpha

一个字符串,指示在编码之前是否应保留或丢弃 VideoFrame 输入的 alpha 分量。可选值包括:

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

一个字符串,包含 WebRTC 中定义的编码可伸缩性模式标识符 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

浏览器兼容性