1. 完全限定的编解码器字符串
编解码器字符串为 "opus"。
2. EncodedAudioChunk 数据
包含 Opus 的 EncodedAudioChunk
可以采用两种不同的格式。
如果比特流采用 opus
格式,
EncodedAudioChunk
必须是 Opus 数据包,如 第
3 节(见 [OPUS])中所述。
如果比特流采用 ogg
格式,
EncodedAudioChunk
必须是音频数据包,如 第
3 节(见 [OPUS-IN-OGG])中所述。
3. AudioDecoderConfig 描述
description
可以选择性地设置为标识
头,如 [OPUS-IN-OGG] 第 5.1 节所述。
如果已经设置了 description,
则假定比特流
采用 ogg
格式。
如果未设置 description,
则假定比特流
采用 opus
格式。
4. EncodedAudioChunk 类型
包含 Opus 的 EncodedAudioChunk
的 [[type]]
始终为
“key”。
注: 一旦初始化成功,任何数据包 都可以在任何 时候无错误地解码,但这可能无法产生预期的音频输出。
5. 预填充样本
标识头中的 Pre-skip 字段(见 [OPUS-IN-OGG] 第 5.1 节),如果存在于 description
中,
则指定 AudioDecoder
的
[[priming samples to discard]]
内部槽位的初始值。如果不存在 description,
则 [[priming samples to discard]]
被初始化为 0。已解码的 EncodedAudioChunk
不会传递额外的丢弃信息。
6. AudioEncoderConfig 扩展
partial dictionary AudioEncoderConfig {OpusEncoderConfig opus ; };
opus,类型为 OpusEncoderConfig- 包含 Opus 编解码器专用的配置选项。
6.1. OpusEncoderConfig
dictionary {OpusEncoderConfig OpusBitstreamFormat format = "opus";OpusSignal signal = "auto";OpusApplication application = "audio"; [EnforceRange ]unsigned long long frameDuration = 20000; [EnforceRange ]unsigned long complexity ; [EnforceRange ]unsigned long packetlossperc = 0;boolean useinbandfec =false ;boolean usedtx =false ; };
要检查一个 OpusEncoderConfig
是否有效,请运行以下步骤:
-
如果
frameDuration不是有效的帧持续时间, 其定义见 [RFC6716] 第 2.1.4 节,则返回false。 -
如果指定了
complexity且其值不在0到10(含)范围内,则返回false。 -
如果指定了
packetlossperc且其值不在0到100(含)范围内,则返回false。 -
返回
true。
format,类型为 OpusBitstreamFormat,默认值为"opus"-
配置输出
EncodedAudioChunk的格式。 参见OpusBitstreamFormat。 signal,类型为 OpusSignal,默认值为"auto"-
指定正在编码的音频信号类型。参见
OpusSignal。 application,类型为 OpusApplication,默认值为"audio"-
指定编码器的预期应用。参见
OpusApplication。 frameDuration, 类型为 unsigned long long,默认值为20000-
配置输出
EncodedAudioChunk的帧持续时间(以微秒为单位)。 complexity,类型为 unsigned long-
配置编码器的计算复杂度,如第 2.1.9 节
(见 [RFC6716])所述。有效范围为
0到10,其中10表示最高 复杂度。如果未指定值,则默认值因平台而异: 用户代理应该在移动 平台上将默认值设置为5,在所有其他平台上将默认值设置为9。 packetlossperc, 类型为 unsigned long,默认值为0-
配置编码器预期的数据包丢失百分比。有效范围为
0到100。注: 数据包丢失百分比可能会 在编码过程中更新, 并建议用户代理支持这些重新配置。
useinbandfec,类型为 boolean,默认值为false- 指定编码器是否提供 Opus 带内前向纠错 (FEC),如 [RFC6716] 第 2.1.7 节所述。
usedtx,类型为 boolean,默认值为false- 指定编码器是否使用不连续传输(DTX),如 [RFC6716] 第 2.1.9 节所述。
6.2. OpusBitstreamFormat
enum {OpusBitstreamFormat "opus" ,"ogg" , };
OpusBitstreamFormat
确定解码
已编码音频流是否需要额外数据。
opus- 解码已编码音频流不需要任何元数据。
ogg-
已编码音频流的元数据在配置时通过
AudioDecoderConfig.description提供。
6.3. OpusSignal
enum {OpusSignal "auto" ,"music" ,"voice" , };
OpusSignal
指示正在编码的信号类型的默认值。
auto- 未指定音频信号属于特定类型。
music- 音频信号为音乐。
voice- 音频信号为人声或语音。
6.4. OpusApplication
enum {OpusApplication "voip" ,"audio" ,"lowdelay" , };
OpusApplication
指示编码器预期
应用的默认值。
voip- 处理信号以提高语音可懂度。
audio- 优先保持对原始输入的忠实度。
lowdelay- 通过禁用某些 操作模式来配置尽可能低的编码延迟。
7. 隐私注意事项
请参阅 隐私 注意事项一节,见 [WEBCODECS]。
8. 安全注意事项
请参阅 安全 注意事项一节,见 [WEBCODECS]。