AAC WebCodecs 注册

W3C 小组注释草案,

有关本文档的更多详细信息
此版本:
https://www.w3.org/TR/2026/DNOTE-webcodecs-aac-codec-registration-20260924/
最新发布版本:
https://www.w3.org/TR/webcodecs-aac-codec-registration/
编辑草案:
https://w3c.github.io/webcodecs/aac_codec_registration.html
先前版本:
历史:
https://www.w3.org/standards/history/webcodecs-aac-codec-registration/
反馈:
GitHub
编辑:
Paul Adenot (Mozilla)
Eugene Zemtsov (Google LLC)
前任编辑:
Bernard Aboba (Microsoft Corporation)
Chris Cunningham (Google LLC.)
参与:
Git 仓库。
提交问题。
版本历史:
https://github.com/w3c/webcodecs/commits

摘要

此注册已录入 [webcodecs-codec-registry]。 它描述了 AAC 的:(1) 完全限定的编解码器字符串,(2) 编解码器特有的 EncodedAudioChunk [[internal data]] 字节,(3) AudioDecoderConfig.description 字节,(4) EncodedAudioChunk [[type]] 的值, 以及 (5) 对 AudioEncoderConfig 的编解码器特有扩展

此注册无意包含任何关于某种 编解码器格式是否受知识产权主张约束的信息。如果实现者和 作者打算实现或使用特定的编解码器格式,建议他们在此事项上寻求 适当的法律顾问。WebCodecs 的实现者不被要求支持 AAC 编解码器。

此注册是非规范性的。

本文档的状态

本节描述了本文档在发布时的状态。当前 W3C 出版物列表以及本 技术报告的最新修订版可在 W3C 标准和草案索引中找到。

欢迎对此规范提供反馈和评论。 对本规范的讨论首选使用 GitHub Issues。 或者,你也可以将评论发送到媒体工作组的邮件列表 public-media-wg@w3.org(归档)。 本草案突出显示了一些仍有待工作组讨论的待处理问题。 关于这些问题的结果,包括它们是否有效,尚未作出决定。

本文档由 媒体工作组作为 小组注释草案发布,并使用 注释 轨道。

小组注释草案不被 W3C 或其成员认可。

这是一个草案文档,可能随时被其他文档更新、替换或废弃。 除作为进行中的工作之外,引用本文档是不合适的。

W3C 专利政策不对本文档附带任何许可 要求或承诺。

本文档受 2025 年 8 月 18 日 W3C 流程文档约束。

1. 完全限定的编解码器字符串

此编解码器有多个可能的 编解码器 字符串:

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] 中。

一致性

文档 约定

一致性要求使用 描述性断言 和 RFC 2119 术语的组合来表达。 关键字 “MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、 “MAY” 和 “OPTIONAL” 在本文档的规范性部分中 应按 RFC 2119 中的描述解释。 但是,为了可读性, 这些词在本规范中并不会全部以大写字母出现。

本规范的所有文本都是规范性的, 但明确标记为非规范性的章节、示例和注释除外。[RFC2119]

本规范中的示例用 “for example” 一词引入, 或通过 class="example" 与规范性文本分开, 如下所示:

这是一个资料性示例的例子。

资料性注释以 “Note” 一词开头, 并通过 class="note" 与规范性文本分开, 如下所示:

Note,这是一个资料性注释。

索引

本规范定义的 术语

通过引用定义的 术语

参考文献

规范性参考文献

[RFC2119]
S. Bradner. RFC 中用于 指示要求级别的关键词。1997 年 3 月。当前最佳实践。URL:https://datatracker.ietf.org/doc/html/rfc2119
[WEBCODECS]
Paul Adenot; Eugene Zemtsov. WebCodecs。2026 年 7 月 8 日。WD。URL:https://www.w3.org/TR/webcodecs/

非规范性参考文献

[ISO14496-3]
ISO/IEC 14496-3:2019 - 信息技术 — 视听对象编码 — 第 3 部分:音频。2019-12。URL:https://www.iso.org/standard/76383.html
[ISO23003-3]
ISO/IEC 23003-3:2020 - 信息技术 — MPEG 音频技术 — 第 3 部分:统一语音和音频编码。2020-06。URL:https://www.iso.org/standard/76385.html
[ISO23003-4]
ISO/IEC 23003-4:2025 - 信息技术 — MPEG 音频技术 — 第 4 部分:动态范围控制。2025-03。URL:https://www.iso.org/standard/89036.html
[WEBCODECS-CODEC-REGISTRY]
Paul Adenot; Eugene Zemtsov. WebCodecs 编解码器 注册表。2026 年 2 月 12 日。DRY。URL:https://www.w3.org/TR/webcodecs-codec-registry/

IDL 索引

partial dictionary AudioEncoderConfig {
  AacEncoderConfig aac;
};


dictionary AacEncoderConfig {
  AacBitstreamFormat format = "aac";
};


enum AacBitstreamFormat {
  "aac",
  "adts",
};