我需要获取x264编码影片的特定帧编号的帧类型(I / B / P)。
如何使用ffmpeg / ffprobe执行此操作? 我也对其他解决方案持开放态度。
答案 0 :(得分:3)
我找到了使用ffprobe
和grep
:
$ ffprobe video.mp4 -show_frames | grep -E 'pict_type|coded_picture_number'
这会产生如下输出:
pict_type=I
coded_picture_number=0
pict_type=B
coded_picture_number=3
pict_type=B
coded_picture_number=2
pict_type=P
coded_picture_number=1
pict_type=B
coded_picture_number=6
...
要获取特定帧(例如第8帧)的帧类型,您可以将其扩展为:
$ ffprobe video.mp4 -show_frames | grep -w -E 'coded_picture_number=8' -B 1
pict_type=P
coded_picture_number=8
答案 1 :(得分:2)
您可以直接使用ffmpeg
@num_of_years
以上将为视频的第335帧产生输出
ffmpeg -i input.mp4 -vf select='eq(n,334)',showinfo -f null -
你可以跳过选择过滤器并获得所有帧的输出,然后grep像@incBrain那样。请注意,您需要n: 0 pts: 171008 pts_time:11.1333 pos: 1090471 fmt:yuv420p sar:1/1 s:1280x720 i:P iskey:0 type:B checksum:A72D197D plane_checksum:[9008E835 680AC49A 6CD66C90] mean:[136 122 134] stdev:[65.4 7.0 9.5]
,而不是已编码。