目次
アニメエンコード設定
録画したやつとか、あると思います。
元データはだいたいTSとか、h264とかだと思います。
これらはビットレートが高くて高画質だけれども、ファイルサイズが大きいですよね。
アーカイブ目的であれば良いけど、視聴用にファイルサイズを小さくして扱いやすくしたいですよね?
この記事では私が使っているエンコード設定を紹介します。
前提
- ffmpegがインストール済み
- NVIDIA GPUを使用している
コマンド
ffmpeg -i "input.ts" -map 0:v -map 0:a -c:v hevc_nvenc -rc vbr -cq 28 -b:v 0 -multipass fullres -preset p7 -tune hq -rc-lookahead 32 -spatial-aq 1 -temporal-aq 1 -bf 4 -b_ref_mode each -pix_fmt p010le -profile:v main10 -tag:v hvc1 -c:a libopus -b:a 128k "output.mkv"説明
-map 0:v -map 0:a
映像と音声のみを含めるためのオプション。
字幕は不要なためです。
-c:v hevc_nvenc
H265(HEVC)でエンコードするよっていうオプション。
h264と比べて効率が向上しているため、ファイルサイズはかなり小さくできるポテンシャルがある。
-rc vbr -cq 26 -b:v 0
ビットレートコントロール方式をVBRに設定する。品質は26。
もしアーティファクトが目立つのであれば26から数値を下げれば良い。
20は過剰、24くらいが良いと思います。
-multipass fullres
2パスエンコードをするためのオプション。
fullresはフル解像度で行うよってやつ。
-preset p7 -tune hq
プリセットはp7、利用できる中で一番いいやつです。
チューンはhqで高画質に。(効果はよく分からん)
-rc-lookahead 32
先読みフレーム数です。ビットレートの配分がいい感じになるそうです。
-spatial-aq 1 -temporal-aq 1
空間的適応量子化、時間的適応量子化を有効にするオプション。
効果はよく分からん。
-bf 4 -b_ref_mode each
Bフレームの数。アニメなら4くらいがちょうどいいと言われています。
b_ref_mode eachは各Bフレームを参照として使用できるようにし、圧縮効率を向上させます。
-pix_fmt p010le -profile:v main10
10bit化。
グラデーションがきれいになる(バンディングが抑えられる)だけでなく、実は8bitよりも圧縮効率が上がります。
-tag:v hvc1
HEVC動画をAppleのQuickTime Playerとかで再生できるようにするためのタグ。
これを入れないとmacOSのFinderでプレビューが出なかったりします。
-c:a libopus -b:a 128k
音声をOpusでエンコードします。
同じビットレートならAACやMP3よりも高音質。128kあれば十分すぎます。
おわり
この設定でエンコードすれば、画質を維持しつつファイルサイズを劇的に減らせるはずです。
アニメによって最適な設定は変わりますが、まずはこれを試してみてください。
それでは!