Ffmpeg:在一次调用中混合concat, apad和merge



我正在尝试将多个对ffmpeg的调用合并为一个调用。

我有2张图片,1个视频和1个声音要合并在一起。

视频:图像1(1秒),图像2(1秒-如果可能的话,淡入视频),视频声音:声音——一旦视频开始,合并两个声音

我能够单独执行这些动作(生成带有图像+视频的临时视频),然后合并两种声音,但我想得到更快的东西。

如何将这两个过滤器合并为一个?

ffmpeg -loop 1 -framerate 60 -t 1 -i thumb.jpg -t 1 -f lavfi -i aevalsrc=0 -framerate 60 -t 1 -i theme.jpg -t 1 -f lavfi -i aevalsrc=0 -i video.mov -filter_complex '[0:0] [1:0] [2:0] [3:0] [4:0] [4:1] concat=n=3:v=1:a=1' tmp.mov

ffmpeg -i tmp.mov -i audio.mp3 -filter_complex "[0:a]apad [b]; [b][1:a]amerge[a]" -map 0:v -map "[a]" -c:v copy -c:a mp3 -ac 2 -shortest out.mov

我的猜测是这样的ffmpeg -loop 1 -framerate 60 -t 1 -i thumb.jpg -framerate 60 -t 1 -i theme.jpg -i video.mov -i audio.mp3 -filter_complex "[0:0] [1:0] [2:0] [2:a] concat=n=3:v=1:a=1" -map 2:v -map "[a]" -c:v copy -c:a mp3 -ac 2 -shortest out.mov,但这一个以以下错误结束:流说明符':0'在filtergraph描述[0:0][1:0][2:0][2:a] concat=n=3:v=1:a=1匹配没有流

任何帮助将不胜感激!(如果你知道如何获得fade过滤器在我的情况下,这将是伟大的!)

像这样:

ffmpeg -loop 1 -framerate 60 -t 1 -i thumb.jpg -t 1 -f lavfi -i aevalsrc=0:d=1 -framerate 60 -t 1 -i theme.jpg -t 1 -f lavfi -i aevalsrc=0:d=1 -i video.mov -i audio.mp3 -filter_complex '[0:0] [1:0] [2:0] [3:0] [4:0] [4:1] concat=n=3:v=1:a=1[video][audio],[audio]apad[audio],[audio][5:0]amix=duration=shortest[audio]' -map "[video]" -map "[audio]" out.mov

第二张图片的1秒淡出,

ffmpeg -loop 1 -framerate 60 -t 1 -i thumb.jpg -f lavfi -i aevalsrc=0:d=1
       -loop 1 -framerate 60 -t 1 -i theme.jpg -f lavfi -i aevalsrc=0:d=1
       -i video.mov -i audio.mp3 -filter_complex  
     "[2]format=yuva420p,fade=out:st=0:d=1:alpha=1[2fo];[4][2fo]overlay[m];
      [0:v][1:a][2:v][3:a][m][4:a]concat=n=3:v=1:a=1[video][audio];
      [audio][5:a]amix=duration=shortest[audio]" -map "[video]" -map "[audio]" out.mov

最新更新