複数の映像を1つの映像に交互に挟む interleave


2以上の映像を交互に1つの連続した映像で出力する interleave フィルタの使い方。出力フレーム数は1入力のフレーム数が上限になるので複数映像を交互に挟んで出力する場合はあらかじめフレーム数を減らしておく必要がある。

基本コマンド

偶数と奇数フレームに分けて合わせている。適宜 null フィルタを変更。このコマンドでは何も変化しない
ffmpeg -i input -vf "split[0][1];[0]select=(mod(n-1\,2)),null[0a];[1]select=(mod(n\,2)),null[1a];[0a][1a]interleave=2" output
ffplay -i input -vf "split[0][1];[0]select=(mod(n-1\,2)),null[0a];[1]select=(mod(n\,2)),null[1a];[0a][1a]interleave"

公式ドキュメント:FFmpeg Filters Documentation : interleave, ainterleave

オプション

nb_inputs, n:入力数の指定
既定値:2
範囲:1 から INT_MAX まで

コマンド例

boxblur フィルタをランダムに当てる。n=2 で2出力している
ffplay -i input -vf "select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave"

コメントを残す

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