橫向合并視頻
ffmpeg -i input1.mp4 -i input2.mp4 -lavfi hstack output.mp4
上面的命令雖然可以合并視頻,兩個(gè)視頻可以正常播放蜒滩,但是只保留了前面一個(gè)的音頻姥宝。
下面會(huì)介紹怎么避開(kāi)這個(gè)坑饲趋。
注意這時(shí)候input1和input2必須同樣的高度狠角,如果不一樣的高度可以使用-shortest參數(shù)來(lái)保證同樣的高度驱还。
如果希望合并多個(gè)視頻膊毁,可以使用下面命令行渊鞋。
ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -lavfi hstack=inputs=3 output.mp4
其中input=3表示希望合并的視頻的個(gè)數(shù)
縱向合并視頻
ffmpeg -i input1.mp4 -i input2.mp4 -lavfi vstack output.mp4
網(wǎng)格合并視頻
當(dāng)多個(gè)視頻時(shí)绰更,還可以合并成網(wǎng)格狀,比如2x2锡宋,3x3這種儡湾。但是視頻個(gè)數(shù)不一定需要是偶數(shù),如果是奇數(shù)执俩,可以用黑色圖片來(lái)占位徐钠。
ffmpeg -f lavfi -i color=c=black:s=1280x720 -vframes 1 black.png
該命令將創(chuàng)建一張1280*720的圖片
然后就可以使用下面這個(gè)命令來(lái)合并成網(wǎng)格視頻了,如果只有三個(gè)視頻役首,可以選擇上面創(chuàng)建的黑色圖片替代尝丐。
ffmpeg -i top_left.mp4 -i top_right.mp4 -i bottom_left.mp4 -i bottom_right.mp4 \
-lavfi "[0:v][1:v]hstack[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack"
-shortest 2by2grid.mp4
上面創(chuàng)建的是正規(guī)的2x2網(wǎng)格視頻。想象一下衡奥,現(xiàn)在只有三個(gè)視頻爹袁,我想把第一個(gè)視頻擺放在第一行的中間,然后把第二矮固、三個(gè)視頻擺放在第二行失息。那么就可以使用下面兩個(gè)命令了。
ffmpeg -f lavfi -i color=c=black:s=640x720 -vframes 1 black.png
ffmpeg -i black.png -i top_center.mp4 -i bottom_left.mp4 -i bottom_right.mp4
-lavfi "[0:v][1:v][0:v]hstack=inputs=3[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack"
-shortest 3_videos_2x2_grid.mp4
合并音頻和視頻
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
如果視頻中已經(jīng)包含了音頻档址,這個(gè)時(shí)候還可以替換視頻中的音頻盹兢,使用下面命令行。
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental
-map 0:v:0 -map 1:a:0 output.mp4
合并兩個(gè)音頻
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3
獲取視頻中的音頻
ffmpeg -i input.mp4 -vn -y -acodec copy output.m4a
去掉視頻中的音頻
ffmpeg -i input.mp4 -an output.mp4
現(xiàn)在介紹守伸,怎么合并兩個(gè)視頻并保留兩個(gè)視頻中的音頻绎秒。也就是抖音中的合拍功能。
1.合并兩個(gè)視頻尼摹,但是發(fā)現(xiàn)只有一個(gè)聲音替裆。無(wú)所謂校辩。
2.抽取兩個(gè)視頻中的音頻,然后合并成一個(gè)音頻辆童。
3.將這個(gè)音頻替換到之前的合并視頻中。
4.ok了惠赫。
5.可以使用ffplay播放了把鉴。
關(guān)于合成音視頻的原理,
我猜測(cè)是 https://gitlab.websupport.sk/peter.kovar/ffmpeg-mvc/commit/319440e54f47891a1ab27ffb73d783895f225fe8