1. 完全限定的编解码器字符串
此编解码器有多个可能的 编解码器 字符串:
-
"mp4a.40.2"— MPEG-4 AAC LC -
"mp4a.40.02"— MPEG-4 AAC LC,为兼容 Aud-OTI 而添加前导 0 -
"mp4a.40.5"— MPEG-4 HE-AAC v1 (AAC LC + SBR) -
"mp4a.40.05"— MPEG-4 HE-AAC v1 (AAC LC + SBR),为兼容 Aud-OTI 而添加前导 0 -
"mp4a.40.29"— MPEG-4 HE-AAC v2 (AAC LC + SBR + PS) -
"mp4a.40.42"— Extended HE-AAC (xHE-AAC) (MPEG-D USAC + MPEG-D DRC),如 [iso23003-3] 和 [iso23003-4] 中所定义 -
"mp4a.67"— MPEG-2 AAC LC
2. EncodedAudioChunk 数据
如果比特流采用 adts
格式,则
[[internal data]]
(属于 EncodedAudioChunk)
应当
是一个 ADTS 帧,如 [iso14496-3] 第 1.A.3.2 节中所述。
如果比特流采用 aac
格式,则
[[internal data]]
(属于 EncodedAudioChunk)
应当
是一个原始 AAC 帧(语法元素 raw_data_block()),如
[iso14496-3] 第 4.4.2.1 节中所述。
Extended HE-AAC 必须采用 aac
格式。
3. AudioDecoderConfig 描述
如果存在 description,
则假定它是
AudioSpecificConfig,如 [iso14496-3]
第 1.6.2.1 节表 1.19 中所定义,
并假定比特流采用 aac
格式。
如果不存在 description,
则假定比特流
采用 adts
格式。
sampleRate
和 numberOfChannels
成员会被忽略。
4. EncodedAudioChunk 类型
对于包含
AAC 的 EncodedAudioChunk,
其 [[type]]
始终为 "key"。
注: 初始化成功后,任何 AAC 数据包都可以在 任何时候无错误地解码,但这可能不会产生预期的音频 输出。
5. 预置采样
标准 AAC 比特流通常不传递预置采样,并且
AudioDecoder
的
[[priming samples to discard]]
内部槽位
会在配置时初始化为 0。
如果配置或重置后的首个 EncodedAudioChunk
传递了
带内编码器延迟信息(例如,通过扩展载荷填充元素中的编码器
标识字符串),
则 [[priming samples to discard]]
可以
设置为该预置采样数量。
后续的 EncodedAudioChunk
不得更新
[[priming samples to discard]]。
在活动的解码
会话期间,[[priming samples to discard]]
仅会在调用
reset()
或 configure()
后重新初始化。
6. AudioEncoderConfig 扩展
partial dictionary AudioEncoderConfig {AacEncoderConfig aac ; };
aac,类型为 AacEncoderConfig- 包含 AAC 编解码器专用的配置选项。
6.1. AacEncoderConfig
dictionary {AacEncoderConfig AacBitstreamFormat format = "aac"; };
format,类型为 AacBitstreamFormat,默认为"aac"-
配置输出
EncodedAudioChunk的格式。 参见AacBitstreamFormat。
6.2. AacBitstreamFormat
enum {AacBitstreamFormat "aac" ,"adts" , };
AacBitstreamFormat
决定了解码已编码音频流所需元数据的位置。
aac-
已编码音频流的元数据在配置时通过
AudioDecoderConfig.description提供。 adts-
已编码音频流的元数据在每个 ADTS 帧中提供,
因此不需要
AudioDecoderConfig.description。
7. 隐私考虑
请参阅 隐私 考虑一节,该节位于 [WEBCODECS] 中。
8. 安全考虑
请参阅 安全 考虑一节,该节位于 [WEBCODECS] 中。