对于最新版本的 ffmpeg(大约从 2013 年底开始)
以下将从当前目录中的所有 png 图像创建视频幻灯片(使用视频编解码器 libx264 或 webm)。该命令接受图像名称按顺序编号和排序(img001.jpg、img002.jpg、img003.jpg)以及随机一堆图像。
(每张图片的持续时间为 5 秒)
ffmpeg -r 1/5 -pattern_type glob -i '*.png' -c:v libx264 out.mp4 # x264 video
ffmpeg -r 1/5 -pattern_type glob -i '*.png' out.webm # WebM video
对于旧版本的 ffmpeg
这将从名为img001.png、img002.png、img003.png的一系列png图像创建视频幻灯片(使用视频编解码器libx264或webm), …
(每张图片的持续时间为 5 秒)
ffmpeg -f image2 -r 1/5 -i img%03d.png -vcodec libx264 out.mp4 # x264 video
ffmpeg -f image2 -r 1/5 -i img%03d.png out.webm # WebM video
如果您使用的是最新版本的 ffmpeg,您可能需要稍微修改以下命令
这将创建一个幻灯片,其中每个图像的持续时间为 15 秒:
ffmpeg -f image2 -r 1/15 -i img%03d.png out.webm
如果您想用一张图片制作视频,可以这样做(输出视频时长设置为30秒):
ffmpeg -loop 1 -f image2 -i img.png -t 30 out.webm
如果您没有按系列编号和排序的图像(img001.jpg、img002.jpg、img003.jpg)而是随机的一堆图像,您可以试试这个:
cat *.jpg | ffmpeg -f image2pipe -r 1 -vcodec mjpeg -i - out.webm
或者对于 png 图像:
cat *.png | ffmpeg -f image2pipe -r 1 -vcodec png -i - out.webm
这将读取当前目录中的所有 jpg/png 图像,并使用管道将它们一张一张地写入 ffmpeg 的输入,从而生成视频。
重要提示:系列中的所有图像都需要具有相同的尺寸(x 和 y 尺寸)和格式。
解释:通过告诉 FFmpeg 将输入文件的 FPS 选项(每秒帧数)设置为某个非常低的值,我们在输出端使 FFmpeg 重复帧,因此我们实现了显示每个图像屏幕上的一些时间。您已经看到,您可以将任何分数设置为帧速率。 每分钟 140 次是 -r 140/60。
来源:The FFmpeg wiki
用于从视频创建图像使用
ffmpeg -i video.mp4 img%03d.png
这将创建名为img001.png、img002.png、img003.png、...的图像