1. 完全限定的编解码器字符串
编解码器字符串为 "opus"。
2. EncodedAudioChunk 数据
包含 Opus 的 EncodedAudioChunk
可以采用两种不同格式。
如果比特流采用 opus
格式,
EncodedAudioChunk
必须是 Opus 数据包,如 第
3 节 [OPUS] 所述
如果比特流采用 ogg
格式,
EncodedAudioChunk
必须是音频数据包,如 第
3 节 [OPUS-IN-OGG] 所述。
3. AudioDecoderConfig description
description
可以选择性地设置为 Identification
Header,该 Header 在 [OPUS-IN-OGG] 第 5.1 节中描述。
如果设置了 description,
则假定比特流
采用 ogg
格式。
如果未设置 description,
则假定比特流
采用 opus
格式。
4. EncodedAudioChunk type
对于包含
Opus 的 EncodedAudioChunk,
其 [[type]]
始终是 “key”。
注: 一旦初始化成功,任何数据包 都可以在任何 时候解码且不会出错,但这可能不会产生预期的音频输出。
5. AudioEncoderConfig 扩展
partial dictionary AudioEncoderConfig {OpusEncoderConfig opus ; };
opus, 类型为 OpusEncoderConfig- 包含 Opus 编解码器的特定于编解码器的配置选项。
5.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-
配置编码器的计算复杂度,如 [RFC6716] 第 2.1.9 节
所述。有效范围为
0到10,其中10表示最高 复杂度。如果未指定值,默认值取决于平台: User Agents SHOULD 对移动 平台设置默认值5,并对所有其他平台设置默认值9。 packetlossperc, 类型为 unsigned long,默认为0-
配置编码器预期的数据包丢失百分比。有效范围为
0到100。注: 数据包丢失百分比可能会在 编码过程中更新,建议 User Agents 支持这些重新配置。
useinbandfec, 类型为 boolean,默认为false- 指定编码器是否提供 Opus 带内前向纠错 (FEC),如 [RFC6716] 第 2.1.7 节所述。
usedtx, 类型为 boolean,默认为false- 指定编码器是否使用不连续传输(DTX),如 [RFC6716] 第 2.1.9 节所述。
5.2. OpusBitstreamFormat
enum {OpusBitstreamFormat "opus" ,"ogg" , };
OpusBitstreamFormat
决定解码已编码音频流是否需要额外数据。
opus- 解码已编码音频流不需要元数据。
ogg-
已编码音频流的元数据会在配置时通过
AudioDecoderConfig.description提供。
5.3. OpusSignal
enum {OpusSignal "auto" ,"music" ,"voice" , };
OpusSignal
指示正在编码的信号类型的默认值。
auto- 未指定音频信号为某一特定类型。
music- 音频信号是音乐。
voice- 音频信号是人声或语音。
5.4. OpusApplication
enum {OpusApplication "voip" ,"audio" ,"lowdelay" , };
OpusApplication
指示编码器预期应用的默认值。
voip- 处理信号以提高语音可懂度。
audio- 偏向忠实于原始输入。
lowdelay- 通过禁用某些工作模式来配置尽可能低的编码延迟。
6. 隐私考量
请参阅 隐私 考量一节,见 [WEBCODECS]。
7. 安全考量
请参阅 安全 考量一节,见 [WEBCODECS]。