使用 zoompan 和淡入/淡出创建 FFmpeg 图像幻灯片

Kos*_*tas 5 ffmpeg

我一直在通过互联网上可以找到的任何教程尝试 FFmpeg,但我对如何将缩放效果与一系列图像的淡入淡出相结合感到有些困惑。

在结合我发现的一些例子之后得到了以下内容,但看起来我得到的结果是连续的,而不是我认为的那样。

任何指向我正确方向的指针将不胜感激。

ffmpeg \ 
-loop 1 -t 5 -i input/slideshow/img0001.jpeg 
-loop 1 -t 5 -i input/slideshow/img0002.jpeg \
-loop 1 -t 5 -i input/slideshow/img0003.jpeg \
-loop 1 -t 5 -i input/slideshow/img0004.jpeg \
-filter_complex \
"[0:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=out:st=4:d=1[v0]; \
 [1:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
 [2:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
 [3:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \
 [v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" -map "[v]" -s "800x450" -t 40 output/out_fade.mp4
Run Code Online (Sandbox Code Playgroud)

ber*_*ieb 13

将缩放与淡入淡出相结合 ffmpeg

您给出的示例ffmpeg实际上几乎没有修改(保留-loop导致段错误:“ Error in 'ffmpeg': double free or corruption (!prev): 0x0000000008dffa00”)。

所以我们有:

ffmpeg \
-t 5 -i 1.jpg \
-t 5 -i 2.jpg \
-t 5 -i 3.jpg \
-t 5 -i 4.jpg \
-filter_complex \
"[0:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=out:st=4:d=1 [v0];\
 [1:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,淡出=t=out:st=4:d=1[v1]; \
 [2:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,淡出=t=out:st=4:d=1[v2]; \
 [3:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,淡出=t=out:st=4:d=1[v3]; \
 [v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" -map "[v]" -s "800x450" -t 40 ./ out_fade.mp4

示例输出:

zoompan 和淡入淡出示例

马铃薯质量 - 我需要gif更好地解决优化问题!伪影和失真是尝试使文件大小小于 2MB 的结果,并且不存在于原始视频输出中 - 应该足以让您了解它是否适​​合您的用例。图片是我自己的。


(附加)使用变化的或任意的过渡

根据评论添加

即使使用这个最小的示例,它也会filtergraph很快变得非常复杂,并且更改内容很乏味。不同的库可能会更好。

MLT / 熔化

例如,MELT对于 MLT 框架可能会这样做:

Melt 是作为 MLT 框架的测试工具而开发的。它可以被认为是一个强大的,虽然有些晦涩,但面向多轨命令行的视频编辑器。

并且经常被建议。

电影Py

但是,MoviePy(GitHub 页面)可能更适合您的需求,因为它更简洁且(我建议)更用户友好,只要命令行视频编辑器对用户友好。

您可能对合成过渡/效果部分最感兴趣


我根据我自己尝试在转换中使用ffmpeg; 它是可行的并且能够产生一些非常体面的效果,但痛苦是不值得的。上面的脚本应该可以回答您关于淡入/淡出连续缩小的问题。