ffmpeg:在一次调用中混合concat,apad和amerge
我试图将多个调用合并为一个ffmpeg调用。ffmpeg:在一次调用中混合concat,apad和amerge
我有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秒淡出2日图像,
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
这几乎是良好的,但我想保持视频长度(+两个图像的长度)为我视频的长度(现在我有一个不太长视频+两个图像比声音),我怎样才能有效地修改你的过滤器,以确保? – GeoffreyB
删除'[audio] apad [audio],' – Mulvya
Paul,为什么'-t 1'和'd = 1'都带有aevalsrc? – Mulvya