ffmpeg,在连接时使用 filter_complex 仅将淡入淡出应用于视频输入

ffmpeg, apply fade only to video input using filter_complex while concating

ffmpeg -i foo.mp4 -filter_complex "fade=d=0.5, reverse, fade=d=0.5, reverse" output.mp4

可用于淡入和淡出 foo.mp4 视频。 (我们不关心音频)。根据https://video.stackexchange.com/questions/19867/how-to-fade-in-out-a-video-audio-clip-with-unknown-duration

很好,但只适用于 1 个输入视频和 1 个输出的简单情况。现在,如何在以下更复杂的情况下应用淡入淡出效果?我正在尝试将 a.jpg(一张图片)与 bar.mp4 连接起来。我只希望 bar.mp4 部分淡入淡出。

ffmpeg -loop 1 -t 2 -framerate 1 -i a.jpg  -f lavfi -t 2 -i anullsrc -r 24 -i bar.mp4 -filter_complex "[0][1][2:v][2:a] concat=n=2:v=1:a=1 [vpre][a];[vpre]fps=24[v]" -map "[v]" -map "[a]" out.mp4 -y

当然,我可以先通过第一个命令 运行 从 bar.mp4 创建一个临时的 temp.mp4,然后在第二个命令中输入 temp.mp4。这涉及一个额外的步骤和额外的编码。谁能帮助修复命令或提出更好的建议?

使用

ffmpeg -loop 1 -t 2 -framerate 24 -i a.jpg -f lavfi -t 2 -i anullsrc -r 24 -i bar.mp4 -filter_complex "[2:v]fade=d=0.5, reverse, fade=d=0.5, reverse[v2];[0][1][v2][2:a] concat=n=2:v=1:a=1 [v][a]" -map "[v]" -map "[a]" out.mp4 -y