ffmpeg 用交叉淡入淡出连接 3 个视频

Cri*_*key 5 ffmpeg

我试图将 3 个视频与交叉淡入淡出效果结合在一起。

我可以在 2 个视频中使用它(来自 stackoverflow 但找不到链接):

ffmpeg -y -i part1.mp4 -i part2.mp4 -f lavfi -i color=black:s=1920x1080 -filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=10:d=1:alpha=1,setpts=PTS-STARTPTS[va0]; \
 [1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+10/TB[va1]; \
 [2:v]trim=duration=20[over]; \
 [over][va0]overlay[over1]; \
 [over1][va1]overlay=format=yuv420[outv]" \
-vcodec libx264 -map [outv] merged.mp4
Run Code Online (Sandbox Code Playgroud)

但无法弄清楚如何为 3 个视频进行这项工作。

我不需要任何音频。有任何想法吗?

干杯,

fis*_*ch2 4

ffmpeg-concat是实现您想要的效果的最简单方法,并允许您使用一堆性感的 OpenGL 过渡,默认为交叉淡入淡出。

ffmpeg-concat 0.mp4 1.mp4 2.mp4 -o out.mp4
Run Code Online (Sandbox Code Playgroud)

ffmpeg-gl-transition是一个更复杂的自定义 ffmpeg 过滤器,它允许您使用 GLSL 在两个视频流之间平滑过渡。该过滤器比此处列出的替代方案更容易使用和自定义。

./ffmpeg -i 0.mp4 -i 1.mp4 -filter_complex "gltransition=duration=4:offset=1.5" out.mp4
Run Code Online (Sandbox Code Playgroud)