在连接的视频之间添加交叉淡出



我使用以下命令将多个视频连接在一起:

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

最新更新