30000/1001fpsのインターレースの動画からアニメの24000/1001fpsのプログレッシブ動画にするためにインターレースを解除、逆テレシネする。フレームを間引くにはいくつかの方法があるので目的に合わせてフィルタを使う。

ポイントはフレームを間引く必要があるかどうかと、テロップなどの片フィールド補間がいるかどうか。フレーム間引きするにはdecimateを併用し、pullupdetelecineには必要ない。

片フィールドを補間した 60pはw3fdifだけ使うのが手軽だが、他にもyadifbwdifnnediestdifもBob化できる。yadifbwdifestdifの第1引数を1にする必要があるのは片フィールド補間しBob化する場合である。

逆テレシネするならfieldmatchフィルタを使って、逆テレシネ漏れにestdifフィルタの併用がよさそう。毎フレームのフィールドが動く映像は逆テレシネはせずにbwdifフィルタで片フィールド補間するか、30pにするのが無難にきれいになる。

片フィールドを補間しない場合にnnediは速度の割にはあまり品質はよくないかもしれない。

インターレース解除、または逆テレシネとリサイズを併用する場合は、インターレース解除、または逆テレシネした後にリサイズする。
yadif,scale=1280:-2

フレームを間引くのならインターレース解除した後に行うことでリサイズするフレーム数を減らせて処理がはやくなる。
yadif,decimate,scale=1280:-2

リサイズする scale
Zライブラリを使ったリサイズフィルタ zscale

24pの処理速度比較
8 < 7 < 6 < 5 << 4 << 3 < 2 << 1

  1. フィールドパターンを手動の逆テレシネして、間引きも手動指定
    “separatefields,shuffleframes=0 1 4 3 6 5 8 9 -1 -1,setfield=tff,weave,setpts=(N*1001)/(24000*TB),setparams=field_mode=prog” -r 24000/1001 -fps_mode cfr
  2. フィールドパターンを手動の逆テレシネして、間引きは自動
    detelecine=start_frame=3
  3. 手動インターレース解除して、間引きも手動指定
    fieldhint=hint.txt:pattern,select=mod(n-1\,5),fps=24000/1001
  4. 高速なプログレVFR(-rで固定フレームにできる)(速度を重視)
    pullup -r 24000/1001
  5. 意外に速くて高品質で 24fps化(品質と速度を両立)
    fieldmatch,decimate
  6. 一般的な 24fps化(品質と速度を両立)
    yadif=0:-1:1,decimate
  7. yadif より高画質(常に高画質とは限らない)な 24fps化(速度より品質重視)
    bwdif=0:-1:1,decimate
  8. IVTCとyadifを併用して24fps化(速度より品質重視)
    fieldmatch=mode=pc:cthresh=40,yadif=0:-1:1,decimate
  9. 一般的なインターレース解除(品質と速度を両立)
    yadif=0:-1:1
  10. yadif より高画質(常に高画質とは限らない)
    bwdif=0:-1:1
  11. テロップなど60pのBob
    yadif=1:-1:1
  12. テロップなど60pのBob
    bwdif=1:-1:1
  13. テロップなど60pのBob
    w3fdif=1:0
  14. テロップなど60pのBob(かなり遅いが一番高画質)
    nnedi=deint=1:field=af

関連記事

ロゴ消しはこちら:ffmpeg できれいにロゴを消す方法

一定周期ではない重複フレームを除く場合はmpdecimateフィルタを使う。
Remove sequentially duplicate frames when using FFmpeg – Stack Overflow

追記
全体のコマンドを直して、bwdifを追加。2016年2月29日
Bob の部分を追記した。2016年3月1日
fieldhintを追加してリンクを追加。2016年4月7日
エンコードの元になる動画の説明を加えた。2016年10月30日
fieldmatch,decimateを追加。2018年5月3日
setpts=N/(24000/1001)/TBを追加。2019年2月25日
リサイズする場合のフィルタ順の明記。2019年5月23日
リサイズのコマンドが間違っていたのを直した。2019年12月3日
setpts=N/(24000/1001)/TBを削除。shuffleframesdetelecineの逆テレシネを追加。2023年1月2日

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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