Open hughfenghen opened 3 months ago
WebCodecs VideoDecoder 解码的数据类型为 EncodedVideoChunk EncodedVideoChunk 是由一个或多个 H264 的 NALU 组成的
NALU 的结构及二进制含义参考: https://github.com/dreamsxin/example/blob/master/codec/H.264视频码流解析.md
使用 WebCodecs 在浏览器中解析视频,请参考作者的文章 https://hughfenghen.github.io/posts/2023/07/23/webav-2-parse-video/
一个完整的 avcC box 示例数据内容
减去前面八个字节
00 00 00 3A 61 76 63 43
,长度 4 字节, avcC 文本 4 字节; 后面的二进制数据是初始化 VideoDecoder 的 description 参数内容下面是 GPT 对以上数据的分析结果,暂时存档,正确性待确认
解析如下:
Box Size:0x3A(58 字节),整个 avcC box 的大小,包括 Box Size 本身和所有子元素的大小。
Box Type:'avcC'
Configuration Version:0x01,AVC 配置的版本号。
AVC Profile Indication:0x64,AVC 编码器所使用的 Profile(Main Profile)。
Profile Compatibility:0x00,Profile 兼容性。
AVC Level Indication:0x1E,AVC 编码器所使用的 Level(H.264 Level 3.0)。
Length Size Minus One:0xFF,NAL 单元长度字段的大小减去 1 的值(对应 0x03,表示 NAL 长度字段为 4 个字节)。
SPS Count:0x01,Sequence Parameter Set(SPS)的数量。
SPS Length:0x001D(29 字节),第一个 SPS 的长度(以字节为单位)。
SPS NAL Unit:
这是 29 字节的 SPS 数据,表示视频序列参数集。
PPS Count:0x01,Picture Parameter Set(PPS)的数量。
PPS Length:0x0006(6 字节),第一个 PPS 的长度(以字节为单位)。
PPS NAL Unit:
这是 6 字节的 PPS 数据,表示图像参数集。
现在我们了解了每个字段的含义:
这些信息组成了 avcC box,在 H.264/AVC 编码中非常重要,解析器使用这些数据来正确解码视频流。