我想对压缩视频进行分析,以节省解码部分的计算。
所以我想读取压缩视频,并检查每一帧是否是 I/B/P 帧,并根据帧的类型执行特定的操作(过程)。
我该如何使用 来做到这一点ffmpeg
?我还没有在文档中看到如何读取压缩视频。
感谢您的帮助。
答案1
ffmpeg
使用或确定帧类型ffprobe
您想处理视频文件,同时检查帧类型。我过去曾有理由这样做。Gyan Doshi 在 SO 上的回答涵盖了这一点:
ffmpeg -i input.mp4 -vf select='eq(n,334)',showinfo -f null -
以上将产生视频第 335 帧的输出
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]
您可以跳过选择过滤器并获取所有帧的输出,然后使用 grep 类似incBrain 确实注意,要的是显示图片编号,而不是编码。
(答案中没有我添加的附加链接)
根据您想要如何进行,您可以选择使用select
如上所述的过滤器,或者获取所有帧的信息(使用ffprobe video.mp4 -show_frames
)并处理其中的输出。