我使用以下命令将多个视频连接在一起:
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -f lavfi -t 0.1 -i anullsrc -filter_complex "[0:v]scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:-1:-1,setsar=1,fps=30,format=yuv420p[v0]; [1:v]scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:-1:-1,setsar=1,fps=30,format=yuv420p[v1]; [2:v]scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:-1:-1,setsar=1,fps=30,format=yuv420p[v2]; [v0][3:a][v1][3:a][v2][3:a]concat=n=3:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac -movflags +faststart output3.mp4
我如何修改我的命令,以便我可以包括每个视频之间的交叉渐变过渡?请注意,我需要在所有视频之间设置一个固定的淡出持续时间,而不需要在两个视频之间使用特殊效果。我也不关心音频,只关心视频之间的过渡。
是否有一种通用的方法,我不需要指定开始下一个转换的确切时间?就像说在每个视频之间做交叉淡出过渡。
试试这个
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex
"[0:v]scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:-1:-1,setsar=1,fps=30,format=yuv420p[v0];
[1:v]scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:-1:-1,setsar=1,fps=30,format=yuv420p[v1];
[2:v]scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:-1:-1,setsar=1,fps=30,format=yuv420p[v2];
[v0][v1]xfade[v01];
[v01][v2]xfade[v]"
-map "[v]" -c:v libx264 -movflags +faststart output3.mp4