我试图了解 Android MediaExtractor 如何解析 H264(包含在容器格式中)。
如果我检查 H264 流,我发现它由由序列 00 00 00 01 划分的 NAL 单元组成。
MediaExtractor 返回的样本正是那些 NAL 单元,每个都以该标记开头——除了对于特定数据源,前三个 NAL 单元是连接的。前两个 NAL 单元非常短(29 和 8 字节)。
为什么会发生这种串联?如果我要手动解析 H264,我怎么知道要进行这种连接?
对于前三个 NAL 单元,起始码前缀后面的字节是十进制的 103、104 和 101。对于以下大多数 NAL 单元,它是 65,偶尔是 101。