アニメの円盤(Blu-ray/DVD)は価格が高いだけあって豪華な仕様で眺めているだけで物欲を満たされますが、パソコンで頻繁に見直そうと思うと光学メディアの入れ替えが面倒です。
円盤をパソコンでリッピングしてmp4ファイルに保存しておけば円盤を取り替えること無く、プレイリストで自動的に次の話数を再生してくれます。
今回は、H.264/MP4コーデックを使って高画質なアニメを高画質のまま保存するためのエンコード設定をメモ書きとして残しておこうと思います。
Contents
高画質用H.264/MP4の設定
今回は多種多様のコンテナとフォーマットに対応しているXMedia Recodeを使ってまとめておきますが、H264の設定ですからHandBrakeやらAviutlといったエンコーダーでも同じように設定できると思います。
プロファイル:カスタム
形式:MP4
ファイル拡張子:mp4
コーデック:MPEG-4AVC/H.264
フレームレート:オリジナルを保持
レート制御モード:品質(CRF)
品質:17~20
プロファイル:High
レベル:Level4.1
チューン:アニメーション
コーデック:AAC
サンプルレート:ソースと同じ
ビットレート:ソースと同じ
ソースファイルの詳細なデータを閲覧したい場合は、MediaInfoというソフトをおすすめします。
高画質のためのポイント
高画質のためのポイントは
1.レート制御モードを品質(CRF)
画質を優先するのであれば固定ビットレートではなく、品質(CRF)に設定します。
固定ビットレートは、1秒辺りのデータ量で動画の画質を設定するのでエンコード後のファイル容量を特定の値にしたいときに有効です。一方で、データを沢山必要とする動きの激しい場面もデータをあまり必要としない静止画のように動きの少ない場面も同じデータ量で記録するため、画質にムラができてしまいます。
品質(CRF)では、設定した数値によって画質が決まります。どの場面でも設定した数値の画質にするため、動きの激しい場面は沢山のデータを使って表現し、動きの少ない場面は少ないデータ量で表現することができます。
2.品質(CRF)の数値は17~20がベスト?
品質の数値は、いくつがいいのか。エンコードしたい動画をトリミングして検証してみるのもいいですが、それが面倒、手間だという方は17~20あたりの数値に設定しておくと画質を落とさずエンコできます。
下記のサイトで品質(CRF)について詳しく検証したり説明してくれているので、気になる方は読んでみてください。
x264のcrf値はどれくらいが適切なのか?
実際に17~20の値でエンコしていますが、大体の動画は画質の差が分からない程度のものになります。
私はデータ量をあまり気にしないので、設定の初期値は18に設定していますが、crf値:17~20というのはあくまで大体の目安です。自分の中でcrf値の初期値を決めておいて、その品質で試しにエンコードしてみる。画質の劣化もなくデータサイズを圧縮できたなと満足すればよし、画質の劣化が気になるなと感じれば満足行くまでcrf値を減らすといいでしょう。
個々で気をつけることは、ファイル容量です。元ファイルの画質を超えることはありませんし、データ量を減らすためにエンコードしているわけですから、画質を気にするあまり元ファイルの容量を越さないように気をつけるといいと思います。
3.LEVELは4.1が安定
LEVELとは一体何なのか?
以下、Wikipedia.orgから要点を抜粋
レベル1からレベル5.1まで、16段階が定義されている。それぞれのレベルにおいて、処理の負荷や使用メモリ量等を表すパラメータの上限が定められ、画面解像度やフレームレートの上限を決定している。
具体的な数値を元にした表もWikipedia内に記載されていたので、こちらも抜粋しておきます。
Level | 最大マクロブロック | 最大動画ビットレート (VCL) | 解像度例@ フレームレート (ストアされる最大フレーム数) |
||||
---|---|---|---|---|---|---|---|
秒あたり | フレームあたり | BP, XP, MP (kbit/s) |
HiP (kbit/s) |
Hi10P (kbit/s) |
Hi422P, Hi444PP (kbit/s) |
||
4 | 245,760 | 8,192 | 20,000 | 25,000 | 60,000 | 80,000 | 1,280×720@68.3 (9) 1,920×1,080@30.1 (4) 2,048×1,024@30.0 (4) |
4.1 | 245,760 | 8,192 | 50,000 | 62,500 | 150,000 | 200,000 | 1,280×720@68.3 (9) 1,920×1,080@30.1 (4) 2,048×1,024@30.0 (4) |
4.2 | 522,240 | 8,704 | 50,000 | 62,500 | 150,000 | 200,000 | 1,920×1,080@64.0 (4) 2,048×1,080@60.0 (4) |
5 | 589,824 | 22,080 | 135,000 | 168,750 | 405,000 | 540,000 | 1,920×1,080@72.3 (13) 2,048×1,024@72.0 (13) 2,048×1,080@67.8 (12) 2,560×1,920@30.7 (5) 3,680×1,536@26.7 (5) |
5.1 | 983,040 | 36,864 | 240,000 | 300,000 | 720,000 | 960,000 | 1,920×1,080@120.5 (16) 4,096×2,048@30.0 (5) 4,096×2,304@26.7 (5) |
Wikipediaから抜粋したとおりLevelによってパラーメーの上限が決まります。
それなら、できるだけ大きなLevel5.1あたりに設定しておけば問題なしかと思いきやそうでもありません。
つまり再生機器は、このプロファイルとレベルを確認して、自分がそれを再生できるかを判断しているわけです。
どうも、プロファイルやLEVELは再生機器がその動画を再生するスペックが足りているかどうかの指標にもなっているようです。
無意味に高いLEVELを設定してエンコードすれば、目的の機器で再生できなくなる可能性が出てきます。
Level5.1でエンコードした動画ファイルをPCで再生してみたところ、VLC-Media-Playerではきちんと再生できたものの、iTunesやWindows-Media-Playerでは上手く再生できませんでした。
その後、Level4.1に変更して再エンコードをかけた所、ラグや乱れもなく綺麗に再生することが出来ました。
下記のサイトがプロファイルやレベルについて詳しく説明してくれているので、気になる方は読んでみてください。
404 Blog Not Found:tips – モバイルには高画質すぎるH.264動画を劣化ゼロで再生可能に
設定を理解しておくことは大事
エンコードの目的として特定のコンテナに変更したいという場合もありますが、できるだけ高画質を求めるのであれば多少設定について知っておくと便利かもしれませんね。
また、H264コーデックはYoutubeやNicoNicoなど大手動画共有サービスを始めウェブ上でも広く普及しているコーデックなので
H264/mp4でコーデックをインストールしているのに見れない!
H264コーデック対応プレイヤーなのに上手く再生できない!
といったトラブルに遭遇するかもしれません。
上手く再生できない時はコーデックだけではなく、プロファイルやレベルを再確認してみると解決するかもしれませんよ
とても参考になりました。
コメントありがとうございます。
参考になったようで何よりです。
スゴク参考になりました、とても良いサイトですね!
ありがとうございました。
コメントありがとうございます。
拙い記事ですが参考になったようで良かったです。
初コメントです。
質問等は受け付けておりますでしょうか?
分かる範囲でならお答えしますよ。
xmedia recode の形式の中にあるプロファイルについてですが、ここはカスタムのほうがいいのでしょうか?
私はよきyoutubeにしてエンコしているのですが…
やっと理解できるxMedia設定のHPに出会えました。感謝です。
設定のバリエーションを増やして頂けるともっと嬉しいのですが。
(もちろんそれぞれの動画により違うのは分かっていますが・・・)
盲目的にとりあえず信頼できる定番、決定版、ド本命的な基準が欲しいのです。
(レート制御とかといった細部を理解していないと、無謀・無為な試行錯誤が続くばかりで・・・)