「FFMPEGメモ」の版間の差分
提供: JUNKWIKI(ジャンクウィキ)
行12: | 行12: | ||
録画済みアニメtsのmp4エンコードを想定してます。 | 録画済みアニメtsのmp4エンコードを想定してます。 | ||
− | まずは [http://ameblo.jp/sc1986/entry-12096410411.html] | + | まずは [http://ameblo.jp/sc1986/entry-12096410411.html] を参考にプロファイルを作成してlibx264-hq-ts.ffpresetの名前で保存。 |
<pre>level=41 | <pre>level=41 | ||
− | crf= | + | x264-params=vbv-maxrate=6000:vbv-bufsize=12000 |
+ | level=41 | ||
+ | crf=22 | ||
coder=1 | coder=1 | ||
flags=+loop | flags=+loop | ||
行22: | 行24: | ||
subq=7 | subq=7 | ||
me_range=16 | me_range=16 | ||
− | g= | + | g=360 |
− | keyint_min= | + | keyint_min=24 |
sc_threshold=40 | sc_threshold=40 | ||
− | i_qfactor=0. | + | i_qfactor=0.80 |
b_strategy=1 | b_strategy=1 | ||
qmin=10 | qmin=10 | ||
行31: | 行33: | ||
bf=16 | bf=16 | ||
bidir_refine=1 | bidir_refine=1 | ||
− | refs= | + | refs=8 |
− | deblock=0 | + | deblock=0 |
+ | bt=90 | ||
+ | qcomp=0.7 | ||
</pre> | </pre> | ||
− | + | 以下のコマンドでエンコードすると、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 | + | 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増やしてみよう。 |
2017年1月19日 (木) 23:04時点における最新版
ほぼ自分向けガバガバメモ
環境
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増やしてみよう。