通過FFmpeg建立畫布,以多宮格方式展現
一下為執行命令
-re -i 1.mp4 -re -i 2.mp4 -re -i 3.mp4 -re -i 4.mp4 -filter_complex "nullsrc=size=640x480 [base];
[0:v] setpts=PTS-STARTPTS,scale=320x240 [upperleft];
[1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright]; [base][upperleft] overlay=shortest=1[tmp1]; [tmp1][upperright] overlay=shortest=1:x=320 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=320:y=240" -c:v libx264 out.mp4
簡單明了,1.2.3.4.mp4為文件路徑,out.MP4為輸出文件路徑,通過nullsrc創建overlay畫布,畫布大小640:480,
使用[0:v][1:v][2:v][3:v]將輸入的4個視頻流去除,分別進行縮放處理,然后基於nullsrc生成的畫布進行視頻平鋪,
命令中自定義upperleft,upperright,lowerleft,lowerright進行不同位置平鋪。
平鋪步驟如圖所示:
最終實現效果:
同理,實現多種風格拼接: