要想深入学习视频,就必须对h264文件有所了解,我就以前面海思摄像头生成的h264文件为例说明一下h264的基本知识,以方便后期rtsp传输视频时对h264打包。
附件:Hi3518编码H264
请先下载附件里的文件,里面有源代码、生成的h264文件、调试输出的打印信息。我们首先打开“h264数据分析”文件夹里的“log20171229103150_printf.txt”文件,这个文件是调试输出的打印信息。从打印信息可以看出摄像头是AR0130,720P,30fps,这种图片格式需要的内存大小为u32BlkSize=1491840。下面的一系列数据就是hi3518生成h264数据时的打印信息。在结合打印信息说明之前先说明一些h264的基本知识,可能不全,但是以易理解,平时用得最多的概念为主。h264编码过程中的三种不同的数据形式,一般以原始字节序列载荷RBSP为主;h264的功能分为两层,视频编码层(VCL)和网络提取层(NAL),我们常关注网络提取层(NAL),H264在网络传输的也是NALU;一个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成
StartCode:00 00 00 01
NAL Header:占一个字节,由三部分组成forbidden_bit(1bit),nal_reference_bit(2bits)(优先级