幻灯片可能有很多幻灯片,如果你想要xfade
淡入淡出效果,似乎你不能使用concat
解复用器。FFmpeg 支持至少 50 个输入文件,但如果您还需要为每个文件指定过滤器,您最终将遇到 Windows 上 8 kB 的最大命令行长度。(我用 50 个输入文件进行了测试,并遇到了这个限制。)
每个文件的过滤器可能看起来像这样:
-framerate 30 -loop 1 -t 7 -i 20.jpg
… (spread across lines for readability:) …
-filter_complex "…
[3] scale=1600:960: force_original_aspect_ratio=decrease,
pad=1920:1080:(ow-iw)/2:(oh-ih)/2 [v3]; …
[w3][v4] xfade=offset=25 [w4]; …"
重复几十次,很快你就会谈论真正的千字节。
我试图创建这样的交叉淡入淡出的幻灯片,是不是让 FFmpeg 超出了它的预期用途?它确实运行得很好,可以用 Perl 脚本生成,并在记事本中进行调整。
是否有一种方法(脚本或类似方法)可以避免选项和过滤器规范中的冗余,从而扩展命令行上可以执行的操作的限制?
关于我可能被误导的方法还有其他建议吗?
答案1
这是基本方法。但我会事先缩放+填充每幅图像。通过缩放/填充每幅图像,这将节省最终滤镜图中的字符以及 CPU/RAM -framerate x -t
。