4

我有一些视频,我想每 2 秒将其转换为帧图像。

例如,如果视频在 15 fps 时长 7 秒,我想获得第 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?

4

2 回答 2

1

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

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

于 2009-11-11T16:04:05.003 回答
1

我最终做了以下很大程度上是从 ffmpeg 教程中借来的:

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

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

于 2009-11-12T19:29:53.720 回答