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

コメントを残す

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

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