我试图将对ffmpeg的多个调用合并为一个单独的调用。
我有两个图像,一个视频和一个声音合并在一起。
视频:图像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
过滤器,那就太棒了!)
答案 0 :(得分:5)
像这样(没有褪色):
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 :(得分:0)
第二张图像淡出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