il
フィルタの使い方。似たフィルタにフレームをインターリーブするinterleave
フィルタと、フレーム間をインターリーブするtinterlace
フィルタがある。
複数の映像を1つの映像に合わせるinterleave
フィールドを足したり引いたりする tinterlace
効果がわかりやすい例
上半分と下半分の映像をトップフィールドとボトムフィールドで交互に挿入するインターリーブ。上に黒、下に白を並べてグレーのように見える映像。
ffmpeg -f lavfi -i color=s=320x120:d=10:c=black b.mp4 ffmpeg -f lavfi -i color=s=320x120:d=10:c=white w.mp4 ffmpeg -i b.mp4 -i w.mp4 -filter_complex vstack,il=l=i:c=i,setparams=field_mode=tff output1.mp4
上半分と下半分の映像に分解するデインターリーブ。上に黒、下に白を並べた元の映像に戻る。
ffmpeg -i b.mp4 -i w.mp4 -filter_complex vstack,il=l=i:c=i,setparams=field_mode=tff,il=l=d:c=d output2.mp4
ls=1:cs=1で輝度と彩度を入れ替えるので上が白、下が黒に入れ替わる。
ffmpeg -i b.mp4 -i w.mp4 -filter_complex vstack,il=l=i:c=i,setparams=field_mode=tff,il=l=d:c=d:ls=1:cs=1 output3.mp4
トップフィールドとボトムフィールドに分けて上下に積み重ねる。
ffplay -i input -vf il=l=d:c=d
元の映像を左に、フィールドを積み重ねた映像を右に並べる。
ffplay -i input -vf split[0v],il=l=d:c=d,[0v]hstack
公式ドキュメント:FFmpeg Filters Documentation : il
オプション
- luma_mode, l[int]
輝度の指定 - 0, none
- 1, interleave, i
- 2, deinterleave, d
- chroma_mode, c[int]
彩度の指定 - 0, none
- 1, interleave, i
- 2, deinterleave, d
- alpha_mode, a[int]
透過部の指定 - 0, none
- 1, interleave, i
- 2, deinterleave, d
- luma_swap, ls[boolean]
輝度を入れ替える
既定値:0 - chroma_swap, cs[boolean]
彩度を入れ替える
既定値:0 - alpha_swap, as[boolean]
透過部を入れ替える
既定値:0