H264码流分两种组织方式,一种是AnnexB格式,一种是AVCC格式
AnnexB格式
标准名称是MPEG-2 Tansport Stream Format,适合网络传输
和标准的H264文件格式一样,每一帧都由StartCode+NALU组成
StartCode NALU | StartCode NALU | …
SPS和PPS存在一个特定类型的NALU当中,一般是首个NALU
AVCC格式
标准名称是MPEG-4 Byte Stream Format,适合文件存储
又叫AVC1格式,FLV、MP4、MKV文件用的都是这种格式
ExtraData | Length NALU | Length NALU | …
SPS和PPS存在ExtraData当中
mp4toannexb
这是ffmpeg提供的一种比特流过滤器BitStreamFilter
它允许在转码前,从AVCC格式输入流中读取SPS和PPS,然后写到AnnexB格式的输出流当中
具体用法可以自己百度研究下