ffmpeg でインターレース解除


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

ポイントはフレームを間引く必要があるかどうかと、テロップなどの片フィールド補完がいるかどうか。フレーム間引きするには decimate を併用し、pullup には必要ない。fieldmatch 後にインターレースフラグだけインターレース解除する場合アルゴリズムを変えても結果は同じで速度も同じになる。片フィールドを補完した 60p は w3fdif だけ使うのが手軽だが、他にも yadifbwdifnnedi も Bob化できる。yadifbwdif の第1引数を 1 にする必要があるのは片フィールド補完した Bob化する場合である。

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

  1. 手動インターレース解除して、間引きも手動指定
    fieldhint=hint.txt:relative,select=(mod(n-1\,5)),fps=24000/1001
  2. 高速なプログレVFR(-r で固定フレームにできる)(品質と速度を両立)
    pullup -r 24000/1001
  3. 一般的な 24fps化(品質と速度を両立)
    yadif=0:-1:1,decimate
  4. yadif より高画質な 24fps化(速度より品質重視)
    bwdif=0:-1:1,decimate
  5. IVTC と yadif を併用して 24fps化(速度より品質重視)
    fieldmatch=order=auto:combmatch=none,yadif=0:-1:1,decimate
  6. 一般的なインターレース解除(品質と速度を両立)
    yadif=0:-1:1
  7. yadif より高画質
    bwdif=0:-1:1
  8. テロップなど 60p の Bob
    yadif=1:-1:1
  9. テロップなど 60p の Bob
    bwdif=1:-1:1
  10. テロップなど 60p の Bob
    w3fdif=1:0
  11. テロップなど 60p の Bob(かなり遅いが一番高画質)
    nnedi=deint=1:field=af

関連記事

公式ドキュメント

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

追記
2016年2月29日
全体のコマンドを直して、bwdif を追加した。
2016年3月1日
Bob の部分を追記した。
2016年4月7日
fieldhint を追加してリンクを追加した。
2016年10月30日
エンコードの元になる動画の説明を加えた。

コメントを残す

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

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