分离某些封装格式(例如MP4/FLV/MKV等)中的H.264的时候,需要首先写入SPS和PPS,否则会导致分离出来的数据没有SPS、PPS而无法播放。H.264码流的SPS和PPS信息存储在AVCodecContext结构体的extradata中。需要使用ffmpeg中名称为“h264_mp4toannexb”的bitstream filter处理。有两种处理方式:
手动指定SPS/PPS内容,指定AVCodecContext
结构体中extradata的值;一种是让FFmpeg通过读取传输数据来分析SPS/PPS信息,一般情况下在每一个I帧之前都会发送一个SPS帧和PPS帧
https://blog.csdn.net/leixiaohua1020/article/details/11800877