ffmpeg 4.1 から使えるフィルタ。overlay, stack フィルタを合わせたような xstack フィルタの使い方。解像度が異なっていても使えるのが特徴で、上下左右にも映像の上にも重ねられる。余白部分は YUV なら [0:0:0] の緑、RGB なら [0:0:0] の黒になり、フレームレートが一致しないと小さい方に合わされる。

overlay フィルタのように映像の上に重ねることもできるが、透過情報は引き継げないのできれいに色が抜けない。overlay フィルタよりも処理が早いので透過させないならこちらの方がよいが、overlay_opencl, overlay_qsv が使えるのならその限りではない。

Windows の ffmpeg で生放送する方法 : overlay
Windows の ffmpeg で生放送する方法 : stack
qsv 対応の ffmpeg をつくる : overlay_qsv

基本コマンド

1入力の右に2入力を並べ、音声は1入力をコピーする
ffmpeg -i input1 -i input2 -filter_complex "xstack=inputs=2:layout=0_0|w0_0:shortest=0[v]" -map [v] -map 0:a -c:a copy output
ffmpeg -i input1 -i input2 -filter_complex "xstack[v]" -map [v] -map 0:a -c:a copy output

公式ドキュメント:FFmpeg Filters Documentation : xstack

オプション

  • inputs[int]
    入力ファイル数
    範囲:2 から INT_MAX まで
    既定値:2
  • layout[string]
    レイアウトの指定。wは横解像度で隣の数字が入力ファイルの指定で0から。hは縦解像度で数字は横解像度と同じ。座標指定も可能
    既定値:”0_0|w0_0″
  • shortest[boolean]
    一番短い入力ファイルが終わったときに強制的に終了させるか
    既定値:0(終了しない)

応用例

  • 4入力したときに
    13
    24
    の順番に並べる
    "xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0"
  • 4入力したときに
    1
    2
    3
    4
    の順番に並べる
    "xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2"
  • 9入力したときに
    516
    438
    729
    の順番に並べる
    "xstack=inputs=9:layout=w3_0|w3_h0+h2|w3_h0|0_h4|0_0|w3+w1_0|0_h1+h2|w3+w1_h0|w3+w1_h1+h2"

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)