2009-10-12 147 views
3

我有一些视频需要每2秒转换为帧图像。当降低帧速率时,ffmpeg会得到哪个帧

E.g.如果视频是7秒长以15fps我想获得帧1,31,61,91

命令:

ffmpeg -i foo.mp4 -r 0.5 -f image2 -vcodec mjpeg foo%d.jpg

似乎做我想做的,但其框架它会得到吗? 1,31,61,91或30,60,90或者13,43,73,103,

+0

+1发布什么适合你!我可以问为什么你需要这样的精度?最初我没有明白这一点。 – 2009-11-13 15:10:32

+0

我是一名生物学家,我试图每两秒捕捉一次实验的状态。与其他数据相匹配。一个或两个框架可能不会是一个问题,但它可以完全正确,为什么不呢? – Peter 2009-11-13 20:55:45

回答

1

第一幅图像将来自第一帧。

请注意,你很可能会得到一个或两个你期望的图像。我相信这是因为舍入和/或ffmpeg创建了最终图像。例如:你的视频真的有7秒多吗?或者是7.63秒?

+1

在ffmpeg的测试中,使用它来制作电影中的编号图像,它在前几帧(例如每60帧抓取一次)之后保持一致,但在前两秒,抓取的帧不是均匀间隔的。 – Peter 2009-11-13 09:04:01

1

最后我做了以下主要来自FFmpeg的教程借:

ffmpeg -v 3 -vsync 0 -sameq -i movie.mpr -f image2 "images-%03d.jpeg" 

这让我去看电影的每一帧作为JPEG编号为1到电影的结尾。然后我用一种脚本语言过滤这些文件,知道帧速率为30fps,每60帧抓取一次。