今のFFmpegのエンコードオプション

 今のFFmpegエンコードオプションはこんな感じ。デインターレースと24pをどうするかはかなり迷うところで、

  1. pullup,dejudder,fps=24
  2. yadif=0:-1:1,decimate,fps=24
  3. bwdif=0:-1:1,decimate,fps=24

のいずれか。24000/1001 fps→24 fpsへの変換はframerateなどでなくfpsフィルターを用いる。これは下手にframerateで補完をかけると残像を作ってしまうため。

1080i (1920x1080 px)をデインターレース、24pにしてロゴを消し、BDAV用のm2tsにする例

$ for f in *.ts; do ffmpeg -analyzeduration 60M -probesize 70M -i "$f" -vf pullup,dejudder,fps=24,removelogo=logo.png  -acodec copy -async 1000 -pix_fmt yuv420p -vcodec libx264 -tune film -x264opts "nal-hrd=vbr:aud:colorprim=bt709:transfer=bt709:colormatrix=bt709:sar=1/1:weightp=0:b-pyramid=strict:slices=4:bframes=3:keyint=24:vbv-maxrate=40000:vbv-bufsize=30000:ref=4:level=4.1" "${f%.ts}".m2ts 2>>error.txt; done

1080i (1440x1080 px)をデインターレース、24pにしてロゴを消し、BDAV用のm2tsにする例

$ for f in *.ts; do ffmpeg -analyzeduration 60M -probesize 70M -i "$f" -vf bwdif=0:-1:1,decimate,fps=24,removelogo=logo.png  -acodec copy -async 1000 -pix_fmt yuv420p -vcodec libx264 -tune animation -x264opts "nal-hrd=vbr:aud:colorprim=bt709:transfer=bt709:colormatrix=bt709:sar=4/3:weightp=0:b-pyramid=strict:slices=4:bframes=3:keyint=24:vbv-maxrate=40000:vbv-bufsize=30000:ref=4:level=4.1" "${f%.ts}".m2ts 2>>error.txt; done