关于I帧,P帧,B帧和NAL单元的联系。还有slice片和NAL与各帧之间的关系

问题如上:
先说一下个人的理解。分析一个h264文件,以00 00 00 01开始和结尾的部分代表一个NAL单元。live555里面在给每一帧打上时间戳的时候是读取一个完整的NAL单元,之后再读取下一NAL单元。用analyze_slice_header()函数分析这两个slice_header的区别。如果标志字段frame_num,pic_parameter_set_id,field_pic_flag,bottom_field_flag等不相等,就说明当前帧已经是下一帧了,就把slice_header相同的NAL当成是一帧,打上相同的时间戳经过rtp发送出去。

那这么说。
1:一个NAL单元就是一个slice(片)了,而一帧不一定就是一个NAL单元了。一帧里面可能有多个NAL单元(也就是slice)。
2:NAL单元的头信息中的type字段我们能知道当前类型是sps,pps和IDR类型。但是不能判断当前帧是什么类型(I帧P帧等)。那如果一帧中有多个NAL那是I帧 还是P帧 我们怎么判断呢?是根据slice_head的字段判断吗?
我也是刚学 很多东西不懂希望和大家一起交流。

看有的文章  别人说一帧就是一个nal,I帧可以通过nal头获取 ,那p帧和b帧呢 ?有点困惑 请高人指点哦

你可能感兴趣的:(其他)