FLV封装格式 – 在FLV解析出H.264裸码流

FLV封装格式 – 在FLV解析出H.264裸码流

前面在FLV封装格式中介绍了FLV的各部分组成。接下来需要将FLV中的H.264裸码解析出来,下面就H.264在FLV视频Tag中的存放结构做一下介绍。

关于FLV的Tag结构可以在FLV封装格式中了解。
Tag的第一个字节为0x09表示视频帧,接下来是Tag Header的其他信息,这里不再详细讲述。下面介绍一下H.264视频Tag的数据区。

第一个字节

H.264的编码ID为7,所以数据区第一个字节的低4位为7,高4位一般为1或2,表示关键帧或非关键帧。

第二个字节

第二个字节为0x00或0x01,用来表示帧类型。为0x00时,该帧数据为视频信息数据,保存了视频的sps、pps信息,一般为第一个视频帧。为0x01时,该帧数据为视频流信息。

关键帧与非关键帧数据

当视频帧为关键帧数据时,Tag数据区存储的是SEI(补充增强信息)和IDR。结构如下:

关键帧结构

当视频为非关键帧时,Tag数据区存储的是SLICE数据。

总结

可以根据上面的结构提取出视频信息数据、SEI、IDR、SLICE数据,然后再每个数据前面添加0x00000001这个H.264帧分割数据就能组成完整裸码流数据了。

参考文献:
http://www.360doc.com/content/16/1013/17/474846_598171645.shtml

最后推荐一个H.264分析器:http://blog.csdn.net/leixiaohua1020/article/details/17933821

发表回复

您的电子邮箱地址不会被公开。