フィールドを足したり引いたりする tinterlace


入力した映像のフレームをフィールドに分離し足したり引いたりする tinterlace フィルタの使い方。1入力1出力なので別ソースの同じ映像を取り込む場合は偶数フレームと奇数フレームを interleave してから1映像にすることで2映像の偶数フィールドと奇数フィールドを混ぜることができる。

ちなみに偶数フレーム、奇数フレームそれぞれをドロップさせる(間引く)フィルタに select があり、こちらの方が高速。

偶数フレームを出力する:select=(mod(n-1\,2)) // 出力フレームは 0, 2, 4...
奇数フレームを出力する:select=(mod(n\,2)) // 出力フレームは 1, 3, 5...

select の使い方:ffmpeg で重複フレームを間引く方法

説明で使われるフレーム、フィールド番号は 1 スタートの奇数である。

基本コマンド

1フレームをトップに2フレームをボトムに挿入する、縦幅が2倍、fpsが半分
ffplay -i input -vf tinterlace=0

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

オプション

文章で説明するよりも公式ドキュメントの図を見た方がわかりやすいので引用。

  • 0, mergex
    奇数フレームの偶数フィールドに次の偶数フレームを挿入する、縦幅が2倍になり、fps半分、既定値

     ------> time
    Input:
    Frame 1         Frame 2         Frame 3         Frame 4
    
    11111           22222           33333           44444
    11111           22222           33333           44444
    11111           22222           33333           44444
    11111           22222           33333           44444
    
    Output:
    11111                               33333
    22222                               44444
    11111                               33333
    22222                               44444
    11111                               33333
    22222                               44444
    11111                               33333
    22222                               44444
  • 1, drop_even
    偶数フレームがドロップ、fps半分

     ------> time
    Input:
    Frame 1         Frame 2         Frame 3         Frame 4
    
    11111           22222           33333           44444
    11111           22222           33333           44444
    11111           22222           33333           44444
    11111           22222           33333           44444
    
    Output:
    11111                               33333
    11111                               33333
    11111                               33333
    11111                               33333
  • 2, drop_odd
    奇数フレームがドロップ、fps半分

     ------> time
    Input:
    Frame 1         Frame 2         Frame 3         Frame 4
    
    11111           22222           33333           44444
    11111           22222           33333           44444
    11111           22222           33333           44444
    11111           22222           33333           44444
    
    Output:
                        22222                               44444
                        22222                               44444
                        22222                               44444
                        22222                               44444
  • 3, pad
    奇数フレームの偶数フィールドに黒フィールドを差し替え、偶数フレームの奇数フィールドに黒フィールドを差し替え、縦幅が2倍になる

     ------> time
    Input:
    Frame 1         Frame 2         Frame 3         Frame 4
    
    11111           22222           33333           44444
    11111           22222           33333           44444
    11111           22222           33333           44444
    11111           22222           33333           44444
    
    Output:
    11111           .....               33333           .....
    .....               22222           .....               44444
    11111           .....               33333           .....
    .....               22222           .....               44444
    11111           .....               33333           .....
    .....               22222           .....               44444
    11111           .....               33333           .....
    .....               22222           .....               44444
  • 4, interleave_top
    奇数フレームの奇数フィールドと偶数フレームの偶数フィールドを合わせる、fps半分

     ------> time
    Input:
    Frame 1         Frame 2         Frame 3         Frame 4
    
    11111<-       22222             33333<-        44444
    11111           22222<-         33333            44444<-
    11111<-       22222             33333<-        44444
    11111           22222<-         33333            44444<-
    
    Output:
    11111                                 33333
    22222                                 44444
    11111                                 33333
    22222                                 44444
  • 5, interleave_bottom
    奇数フレームの偶数フィールドと偶数フレームの奇数フィールドを合わせる、fps半分

     ------> time
    Input:
    Frame 1         Frame 2         Frame 3         Frame 4
    
    11111           22222<-         33333           44444<-
    11111<-       22222             33333<-         44444
    11111           22222<-         33333           44444<-
    11111<-       22222             33333<-         44444
    
    Output:
    22222                                 44444
    11111                                 33333
    22222                                 44444
    11111                                 33333
  • 6, interlacex2
    奇数フレームはオリジナルのフレーム順に、偶数フレームにその前の奇数フレームの偶数フィールドを差し替えてフレーム数を増やす、fps2倍

     ------> time
    Input:
    Frame 1            Frame 2            Frame 3             Frame 4
    
    11111              22222                33333               44444
     11111              22222                33333               44444
    11111              22222                33333               44444
     11111              22222                33333               44444
    
    Output:
    11111   22222   22222   33333   33333   44444   44444
     11111   11111   22222   22222   33333   33333   44444
    11111   22222   22222   33333   33333   44444   44444
     11111   11111   22222   22222   33333   33333   44444
  • 7, mergex2
    奇数フレームを奇数フィールドに偶数フレームを偶数フィールドに移動する、縦幅が2倍になる

     ------> time
    Input:
    Frame 1         Frame 2         Frame 3         Frame 4
    
    11111           22222            33333           44444
    11111           22222            33333           44444
    11111           22222            33333           44444
    11111           22222            33333           44444
    
    Output:
    11111           33333            33333           55555
    22222           22222            44444           44444
    11111           33333            33333           55555
    22222           22222            44444           44444
    11111           33333            33333           55555
    22222           22222            44444           44444
    11111           33333            33333           55555
    22222           22222            44444           44444

縦幅と fps の関係性

opt opt_name 縦幅 fps memo
0 merge 2x 1/2 weave
1 drop_even 1x 1/2
2 drop_odd 1x 1/2
3 pad 2x 1x 片フィールド
4 interleave_top 1x 1/2
5 interleave_bottom 1x 1/2
6 interlacex2 1x 2x
7 mergex2 2x 1x

コメントを残す

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

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