web-dev-qa-db-ja.com

ビデオを並べて参加する

これら4つのビデオをどのように並べて結合できますか(左右の間に10pxのマージンがあります。上下にマージンはありません)。

  • top_left.mp4

  • top_right.mp4

  • bottom_left.mp4

  • bottom_right.mp4

Kdenliveはとてもバギーで、私を夢中にさせました。任意のコマンドライン方式を歓迎します。

1
ar2015

ビデオのみ

左右に10ピクセルの境界線

enter image description here

これを行う方法はいくつかありますが、 hstackvstack 、および 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を使用します。

左右に10ピクセルの境界線、上下に3ピクセルの境界線

enter image description here

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
  • Amergeを使用すると、結合されたオーディオは最短の入力と同じ長さになります。それが問題であれば、 amix を使用してください。
3
llogan