FFmpeg使用filter_complex命令拼接多個視頻
filter_complex
filter_complex拼接多個視頻,各個視頻同時播放,效果如某音的同屏。
拼接兩個視頻
1.橫向拼接
ffmpeg -i out1.mp4 -i out2.mp4 -filter_complex "[0:v]pad=iw*2:ih*1[a];[a][1:v]overlay=w" out.mp4
//pad是將合成的視頻寬高,這裏iw代表第一個視頻的寬,iw*2代表合成後的視頻寬度加倍,ih爲第一個視頻的高,合成的兩個視頻最好分辨率一致。overlay是覆蓋,[a][1:v]overlay=w,後面代表是覆蓋位置w:0
合成的視頻效果如下
2.豎屏拼接
ffmpeg -i out1.mp4 -i out2.mp4 -filter_complex "[0:v]pad=iw:ih*2[a];[a][1:v]overlay=0:h" out.mp4
三個視頻拼接
1.橫向拼接
ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -filter_complex "[0:v]pad=iw*3:ih*1[a];[a][1:v]overlay=w[b];[b][2:v]overlay=2.0*w" out.mp4
2.豎向拼接
ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -filter_complex "[0:v]pad=iw:ih*3[a];[a][1:v]overlay=0:h[b];[b][2:v]overlay=0:2.0*h" out.mp4
四個視頻2x2方式排列
ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -i out4.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" out.mp4