これら4つのビデオをどのように並べて結合できますか(左右の間に10pxのマージンがあります。上下にマージンはありません)。
top_left.mp4
top_right.mp4
bottom_left.mp4
bottom_right.mp4
Kdenliveはとてもバギーで、私を夢中にさせました。任意のコマンドライン方式を歓迎します。
これを行う方法はいくつかありますが、 hstack 、 vstack 、および pad を使用するのがおそらく最も簡単です。
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v][1:v]vstack,pad=iw+10:ih[l]; \
[2:v][3:v]vstack[r]; \
[l][r]hstack" \
output.mp4
入力は同じ幅、高さ、および「ピクセル形式」でなければなりません。使用しない場合は、 scale および/または format フィルターを使用して、* stackフィルター用のストリームを準備します。
最短の入力が終了したときにフィルター出力を終了する場合は、*stack=shortest=1
を使用します。
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v]pad=iw:ih+3[tl]; \
[tl][1:v]vstack,pad=iw+10:ih[l]; \
[2:v]pad=iw:ih+3[tr]; \
[tr][3:v]vstack[r]; \
[l][r]hstack" \
output.mp4
amerge フィルターはすべての入力チャンネルを結合し、-ac 2
はそれらをステレオにダウンミックスします:
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v][1:v]vstack,pad=iw+10:ih[l]; \
[2:v][3:v]vstack[r]; \
[l][r]hstack[v]; \
[0:a][1:a][2:a][3:a]amerge=inputs=4[a]"
-map "[v]" -map "[a]" -ac 2 output.mp4