h264二进制流中无效的key_frame(I)和P帧序列

时间:2019-04-08 08:34:56

标签: ffmpeg video-streaming h.264 keyframe

我正在从USB网络摄像头获取视频,并按如下所示将其编码为h.264原始流...

  

ffmpeg.exe -f dshow -rtbufsize 200M -i video =“ Logitech HD Webcam C270” -vcodec libx264-预设超快速-调谐零延迟-g 30 -s 480x640 -buf   大小:v 50M输出。h264

我期望output.h264流中具有1-Key帧和29-P Frame(带有SPS / PPS)。但是我没有得到预期的结果。但是视频播放正常。

我尝试使用ffprob来获取同一文件的元数据。

  

ffprobe -show_frames视频文件名.h264> outputlogfile.txt

在这里我可以看到正确顺序的1键帧和29-P帧。但是,如果我们在二进制读取器中打开h264文件(我正在使用HDX),我会看到Key / P帧顺序不正确。

您可以从下面的链接下载h264示例日志和ffprob日志。

https://www.dropbox.com/s/3ghpkqdc36wdgxr/TimerSample.h264?dl=0 https://www.dropbox.com/s/gdn64004o0udrfk/TimerSample.txt?dl=0

您可以从 here (filtered by start code)

中找到同一文件的二进制序列。

请让我知道我是否缺少某些过滤器。谢谢。

1 个答案:

答案 0 :(得分:0)

屏幕快照中突出显示的元素显示,比特流以SPS单位,PPS单位,SEI单位开始,然后是IDR图片的切片,再是非参考图片切片。这是正常现象,是正常现象。

使用

ffmpeg -i videofilename.h264 -c copy -bsf:v trace_headers -f null -

查看比特流解析的文本转储。