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