我正在尝试将一系列 JPEG 图像转换为延时视频。它们的格式为 IMGP0001.JPG、IMGP0002.JPG 等。从外观上看,这应该与 IMGP%04.JPG 模式相匹配。
我尝试过以下命令(根据本页第二条内容修改):
ffmpeg -f image2 -i IMGP%04d.jpg video.mpg
我收到错误“IMGP%04d.JPG:没有此文件或目录”。
我做错了什么?也许语法“IMGP%04d.JPG”是 *nix 特有的?如果是这样,Windows 的等效语法是什么?
答案1
尝试将文件名模板放在双引号中。此外,如果您在脚本中运行该命令,则可能需要使用 %% 而不是 %。
答案2
基于上述 Mike 的回答,还有一些其他有用的开关也适用于 Windows 解决方案。
我使用下面的命令来降低帧速率并压缩图像,从而得到更小的视频:
ffmpeg.exe -f image2 -framerate 25 -pattern_type sequence -start_number 1234
-framerate 3 -i "Imgp%%04d.jpg" -s 720x480 test.avi
该-framerate 3
选项将生成的视频的帧速率设置为每秒 3 帧,这样我就可以在很短的时间内看到每个静态图像。-r
如果您需要将输出的帧速率与值不同-framerate
,则将其添加为输出选项将更改输出的帧速率。该-s
选项将图片重新缩放到所需的分辨率,以管理生成的视频的大小。或者,更灵活的比例过滤器可以代替使用。
-start_number
请注意,与 Jason 的上述评论相反,如果使用如下开关,则无需重命名文件:
ffmpeg -f image2 -start_number n -i "IMGP%%04d.jpg" video.mpg
-vcodec mpeg4 test.avi
n
静止图像序列的开始位置在哪里。
只要序列开始后不中断,这种方法就有效。如果有间隙,而您想包含所有静止图像,则可能需要重新编号来填补间隙。