我有一部时长 3 分钟、每秒 29 幅图像的电影。我想将其按每秒 1 幅图像分割成图像。
我使用这个命令:
ffmpeg.exe -i FILE0014.MOV -r 2 -f image2 -vcodec mjpeg -qscale 2 "%%05d.jpg"
但这会生成超过 300 张图像!
日志文件显示:
帧= 3 fps=0.0 q=0.0 大小=N/A 时间=00:00:01.00 比特率=N/A 重复=0 丢弃=13
帧= 4 fps=3.9 q=0.0 大小=N/A 时间=00:00:01.50 比特率=N/A 重复=0 丢弃=33
帧= 5 fps=3.2 q=0.0 大小=N/A 时间=00:00:02.00 比特率=N/A 重复=0 丢弃=51
帧= 7 fps=3.4 q=0.0 大小=N/A 时间=00:00:03.00 比特率=N/A 重复=0 丢弃=67
帧= 8 fps=3.1 q=0.0 大小=N/A 时间=00:00:03.50 比特率=N/A 重复=0 丢弃=84
帧= 9 fps=2.9 q=0.0 大小=N/A 时间=00:00:04.00 比特率=N/A 重复=0 丢弃=102
帧= 10 fps=2.8 q=0.0 大小=N/A 时间=00:00:04.50 比特率=N/A 重复=0 丢弃=120
帧= 12 fps=2.9 q=0.0 大小=N/A 时间=00:00:05.50 比特率=N/A 重复=0 丢弃=137
时间不是准确的1秒。
有人能帮我发出正确的命令吗?
答案1
尝试:
ffmpeg -i file0014.mov -vf fps=1 -q:v 2 %03d.jpg
具体来说:
-vf fps=1
会以 1 秒为间隔选择一个帧
-q:v 2
(的简写qscale
)是 jpeg 图像的质量等级。1 表示最高品质,31 表示最低品质。