使用FFmpeg的图像间动画

使用FFmpeg的图像间动画,ffmpeg,Ffmpeg,嗨,我是FFmpeg的新手 我已经从连续图像的幻灯片制作了视频(img001.jpg,img002.jpg,img003.jpg…)。在Ubuntu 14.04中使用以下命令 ffmpeg -framerate 1/5 -i img%03d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p -vf scale=320:240 out.mp4 但现在我想在每个连续图像之间放置动画,比如淡入淡出,我想生成视频 有人能帮我怎么做吗?我已经搜索了很多东西,但是找不到……

嗨,我是FFmpeg的新手

我已经从连续图像的幻灯片制作了视频(img001.jpg,img002.jpg,img003.jpg…)。在Ubuntu 14.04中使用以下命令

 ffmpeg -framerate 1/5 -i img%03d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p -vf scale=320:240 out.mp4
但现在我想在每个连续图像之间放置动画,比如淡入淡出,我想生成视频


有人能帮我怎么做吗?我已经搜索了很多东西,但是找不到……

最好的方法是为每个图像创建中间的mpeg,然后将它们连接到一个视频中。例如,假设你有5张图片;您可以对每个图像运行此操作,以创建中间mpeg,在开始时淡入,在结束时淡出

ffmpeg-y-loop 1-i image-vf“fade=t=in:st=0:d=0.5,fade=t=out:st=4.5:d=0.5”-c:v mpeg2video-t5-q:v1 image-1.mpeg

其中t是每个图像的持续时间或时间。一旦拥有了所有这些mpeg,就可以使用ffmpeg的concat命令将它们组合成一个mp4

ffmpeg-y-i image-1.mpeg-i image-2.mpeg-i image-3.mpeg-i image-4.mpeg-i image-5.mpeg-filter_complex'[0:v][1:v][2:v][3:v][4:v]concat=n=5:v=1[v]'-map'[v]'-c:v libx264-s 1280x720-纵横比16:9-q:v1-pix\fmt yuv420p输出.mp4


这将为您提供所需的视频,是ffmpeg最简单、质量最高的解决方案。如果您对上述命令的工作方式有任何疑问,请告诉我。

您可以避免创建临时中间文件,并在一个命令中完成所有操作,如中所示。如果您确实想使用temp file方法,那么我建议使用无损编码器,如ffv1、utvideo、libx264 w/
-qp 0
、huffyuv等(mpeg2video是有损的,并且限于某些帧速率)。另外,libx264忽略
-q:v
,因此在您的示例中该选项被忽略(改为使用
-crf
)。