FFMPEGメモ
提供: JUNKWIKI(ジャンクウィキ)
ほぼ自分向けガバガバメモ
環境
Linuxです。具体的にはCentOS6.8です。
ffmpegのコンパイル
[1] とか [2] の通りやればいいんだけど、libなんとかっていうライブラリに関してはコンパイルすんのが面倒くさかったりいらなかったりなんかmake通んねーなって時は
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib -ldl" --bindir="$HOME/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
のenableオプション外しちゃえばいい(ガバガバ)
ffmpegエンコード
録画済みアニメtsのmp4エンコードを想定してます。
まずは [3] を参考にプロファイルを作成してlibx264-hq-ts.ffpresetの名前で保存。
level=41 x264-params=vbv-maxrate=6000:vbv-bufsize=12000 level=41 crf=22 coder=1 flags=+loop cmp=+chroma partitions=+parti8x8+parti4x4+partp8x8+partb8x8 me_method=umh subq=7 me_range=16 g=360 keyint_min=24 sc_threshold=40 i_qfactor=0.80 b_strategy=1 qmin=10 rc_eq='blurCplx^(1-qComp)' bf=16 bidir_refine=1 refs=8 deblock=0 bt=90 qcomp=0.7
以下のコマンドでエンコードすると、24fpsに逆テレシネされた1440x1080なmp4が出来上がるはず(BSからのエンコだとしても、殆ど1440から引き延ばして放送してるだけなのでフルHDにする意味無し)。
ffmpeg -i "入力ファイル名.m2ts" -y -f mp4 -vcodec libx264 -fpre ./libx264-hq-ts.ffpreset -vf pullup -r 24000/1001 -aspect 16:9 -s 1440x1080-vsync 1 -acodec copy -absf aac_adtstoasc -map 0:0 -map 0:1 -threads 16 出力ファイル名.mp4
インタレ解除にはyadif使ってdecimateするのが普通らしいんだけど、なんか何も考えずにpullupした方が絵的にも間引きフレーム的にも良好な結果が得られた。ただし60iなテロップは全然ダメ(1280x720とかにリサイズすれば多少ごまかせる)。あと、CPUもてあましていそうだったらthreads増やしてみよう。