AVC (H.264) WebCodecs 注册

W3C 小组说明草案,

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

摘要

本注册项录入到 [webcodecs-codec-registry] 中。 它描述了,对于 AVC (H.264),(1) 完全限定的编解码器字符串, (2) 编解码器特定的 EncodedVideoChunk [[internal data]] 字节,(3) VideoDecoderConfig.description 字节, (4) EncodedVideoChunk [[type]] 的值, (5) 对 VideoEncoderConfig 的编解码器特定扩展, 以及 (6) 对 VideoEncoderEncodeOptions 的编解码器特定扩展。

本注册项无意包含任何关于某一编解码器格式是否受知识产权主张限制的信息。建议实现者和 作者如果打算实现或使用某一特定编解码器格式,应就此事项寻求适当的法律顾问意见。 WebCodecs 的实现者并不要求支持 AVC / H.264 编解码器。

本注册项是非规范性的。

本文档的状态

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

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

本文档由 Media Working Group 使用 说明 轨道作为小组说明草案发布。

小组说明草案未获得 W3C 或其成员的认可。

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

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

本文档受 2025年8月18日 W3C 流程文档管辖。

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

编解码器字符串以前缀 "avc1." 或 "avc3." 开始,后接一个 6 字符的后缀,分别如 [rfc6381] 第 3.4 节和 [iso14496-15] 第 5.4.1 节所述。

2. EncodedVideoChunk 数据

EncodedVideoChunk [[internal data]] 预期为 一个访问单元,如 [ITU-T-REC-H.264] 第 7.4.1.2 节所定义。

注: 一个访问单元恰好包含一个主编码 图像。

如果比特流采用 avc 格式, [[internal data]] 则假定为规范格式,如 [iso14496-15] 第 5.3.2 节所定义。

如果比特流采用 annexb 格式, [[internal data]] 则假定为 Annex B 格式, 如 [ITU-T-REC-H.264] Annex B 所定义。

注: 由于 [[internal data]] 本身是按字节对齐的, 实现无需恢复字节对齐。

3. VideoDecoderConfig 描述

如果存在 description, 则假定它是一个 AVCDecoderConfigurationRecord,如 [iso14496-15] 第 5.3.3.1 节所定义,并且比特流假定为 avc 格式。

注: 此格式常用于 .MP4 文件,在这种文件中, 播放器通常 可以随机访问媒体数据。

如果不存在 description, 则比特流假定为 annexb 格式。

注: "annexb" 格式由 [ITU-T-REC-H.264] Annex B 更详细地描述。此格式常用于直播应用,其中 周期性地包含 SPS 和 PPS 数据,使用户能够轻松地 从流的中间开始。

4. EncodedVideoChunk 类型

如果一个 EncodedVideoChunk[[type]]key, 并且比特流采用 avc 格式,则该 EncodedVideoChunk 预期会 包含一个作为即时解码刷新(IDR) 图像的主编码图像。

注: 如果比特流采用 avc 格式,则解码所需的参数集 包含在 VideoDecoderConfig.description 中。

如果一个 EncodedVideoChunk[[type]]key, 并且比特流采用 annexb 格式,则该 EncodedVideoChunk 预期 包含一个作为即时解码 刷新(IDR)图像的主编码图像,以及解码该 EncodedVideoChunk 中所有视频数据 NAL 单元所需的所有参数集。

5. VideoEncoderConfig 扩展

partial dictionary VideoEncoderConfig {
  AvcEncoderConfig avc;
};

avc 类型为 AvcEncoderConfig
包含 AVC (H.264) 编解码器的编解码器特定配置选项。

5.1. AvcEncoderConfig

dictionary AvcEncoderConfig {
  AvcBitstreamFormat format = "avc";
};

format 类型为 AvcBitstreamFormat,默认值为 "avc"
配置输出 EncodedVideoChunk 的格式。 参见 AvcBitstreamFormat

5.2. AvcBitstreamFormat

enum AvcBitstreamFormat {
  "annexb",
  "avc",
};

AvcBitstreamFormat 决定 AVC 参数集的位置,以及 打包比特流的机制。

annexb
SPS 和 PPS 数据会周期性地包含在整个比特流中。

注: 此格式由 [ITU-T-REC-H.264] Annex B 更详细地描述。此格式常用于直播应用, 其中周期性地包含 SPS 和 PPS 数据,使用户能够轻松地 从流的中间开始。

avc
SPS 和 PPS 数据不会包含在比特流中,而是 通过 [[output callback]] 作为 VideoDecoderConfig.description 发出,作为 EncodedVideoChunkMetadata.decoderConfig 的一部分。

注: 此格式由 [iso14496-15] 第 5.3 节更详细地描述。此格式常用于 .MP4 文件,其中 播放器通常可以随机访问媒体数据。

6. VideoEncoderEncodeOptions 扩展

partial dictionary VideoEncoderEncodeOptions {
  VideoEncoderEncodeOptionsForAvc avc;
};

avc 类型为 VideoEncoderEncodeOptionsForAvc
包含 [ITU-T-REC-H.264] 编解码器的编解码器特定编码选项。

6.1. VideoEncoderEncodeOptionsForAvc

dictionary VideoEncoderEncodeOptionsForAvc {
  unsigned short? quantizer;
};

quantizer 类型为 unsigned short,可空
设置逐帧量化器值。 在 [ITU-T-REC-H.264] 中, 量化器阈值可以从 0 变化到 51。

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年5月5日. WD. URL: https://www.w3.org/TR/webcodecs/
[WEBIDL]
Edgar Chen; Timothy Gu. Web IDL 标准. 现行标准. URL: https://webidl.spec.whatwg.org/

非规范性引用

[ISO14496-15]
ISO/IEC 14496-15:2024 信息技术 — 音视频对象编码 — 第 15 部分:在 ISO 基础媒体文件格式中承载网络抽象层(NAL)单元 结构化视频. 2024年10月. URL: https://www.iso.org/standard/89118.html
[ITU-T-REC-H.264]
H.264:通用视听服务的高级视频 编码. 2019年6月. URL: https://www.itu.int/rec/T-REC-H.264
[RFC6381]
R. Gellens; D. Singer; P. Frojdh. 用于 "Bucket" 媒体类型的 'Codecs' 和 'Profiles' 参数. 2011年8月. 提议标准. URL: https://www.rfc-editor.org/rfc/rfc6381
[WEBCODECS-CODEC-REGISTRY]
Paul Adenot; Eugene Zemtsov. WebCodecs 编解码器 注册表. 2026年2月12日. DRY. URL: https://www.w3.org/TR/webcodecs-codec-registry/

IDL 索引

partial dictionary VideoEncoderConfig {
  AvcEncoderConfig avc;
};


dictionary AvcEncoderConfig {
  AvcBitstreamFormat format = "avc";
};


enum AvcBitstreamFormat {
  "annexb",
  "avc",
};


partial dictionary VideoEncoderEncodeOptions {
  VideoEncoderEncodeOptionsForAvc avc;
};


dictionary VideoEncoderEncodeOptionsForAvc {
  unsigned short? quantizer;
};