使用FFmpeg命令合併音視頻

1.合併音頻和視頻

ffmpeg -i video.mp4 -i audio.aac -c:v copy -c:a copy -bsf:a aac_adtstoasc output.mp4

如果視頻中已經包含了音頻,替換視頻中的音頻,使用下面命令行

ffmpeg -i video.mp4 -i audio.aac -c:v copy -c:a copy -bsf:a aac_adtstoascmap 0:v:0 -map 1:a:0 output.mp4

2.橫向合併視頻

ffmpeg -i input1.mp4 -i input2.mp4 -lavfi hstack output.mp4

上面的命令雖然可以合併視頻,兩個視頻可以正常播放,但是隻保留了

input1.mp4的音頻。input1和input2必須同樣的高度,如果不一樣的高度可以使用-shortest參數來保證同樣的高度。

合併多個視頻,可以使用下面命令行:

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -lavfi hstack=inputs=3 output.mp4

其中input=3表示希望合併的視頻的個數

3.縱向合併視頻

`ffmpeg -i input1.mp4 -i input2.mp4 -lavfi vstack output.mp4``

4.網格合併視頻

當多個視頻時,還可以合併成網格狀,比如2x2,3x3這種。但是視頻個數不一定需要是偶數,如果是奇數,可以用黑色圖片來佔位。

ffmpeg -f lavfi -i color=c=black:s=1280x720 -vframes 1 black.png

該命令將創建一張1280*720的圖片
然後就可以使用下面這個命令來合併成網格視頻了,如果只有三個視頻,可以選擇上面創建的黑色圖片替代。

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

上面創建的是正規的2x2網格視頻。想象一下,現在只有三個視頻,我想把第一個視頻擺放在第一行的中間,然後把第二、三個視頻擺放在第二行。那麼就可以使用下面兩個命令了。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章