ffmpeg中nal type是H264_NAL_SLICE时,如何判断I/p/b帧代码
时间: 2023-07-14 14:13:31 浏览: 152
ffmpeg中求h264视频宽高和帧率的代码
5星 · 资源好评率100%
在H.264码流中,NAL(Network Abstraction Layer)单元是由多个RBSP(Raw Byte Sequence Payload)组成的,而RBSP是由多个NAL单元组成的。在NAL单元中,第一个字节的前5位表示nal_unit_type,用来标识NAL单元的类型。当nal_unit_type为H264_NAL_SLICE时,表示当前NAL单元为视频编码中的slice数据。对于每个slice数据,都可以通过解析slice header来判断当前slice的帧类型(I帧、P帧或B帧)。
I帧的slice header中包含的信息最多,P帧和B帧的slice header中则包含的信息相对较少。具体来说,可以通过查看slice_header中的first_mb_in_slice字段来判断当前slice所属的帧类型。如果first_mb_in_slice等于0,那么当前slice属于I帧;如果first_mb_in_slice不等于0且slice_type等于0,那么当前slice属于P帧;如果slice_type不等于0,那么当前slice属于B帧。
阅读全文