VideoEncoder: configure() 方法
注意:此功能在专用 Web Workers 中可用。
configure()
方法是 VideoEncoder
接口的方法,它将编码器的state
更改为“configured”,并异步准备编码器以接受使用指定参数进行编码的 VideoEncoder
。如果编码器不支持指定的参数或由于其他原因无法初始化,则会通过提供给 VideoEncoder
构造函数的错误回调报告错误。
如果 VideoEncoder
之前已配置,则新的配置将在所有先前任务完成之前不会应用。
语法
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
并使用一些可用选项对其进行配置。
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 的浏览器中加载。