YouTube公式のおすすめエンコード設定は無視しろ— 高音質で高画質の動画をアップロード
YouTube公式のヘルプに従うな
YouTubeにアップロードするとき、エンコードの設定に悩んだ人も多いだろう。公式のドキュメント「アップロードする動画におすすめのエンコード設定」によると、以下のようになっている。
音声コーデック: AAC-LC 48kHz or 96kHz 384kbps (ステレオ時)
動画コーデック: H.264
上記の設定でアップロードしても、画質・音質が悪いという訳ではないが、アップロードされた後に再エンコード(多段エンコード)がかかることによって、若干の劣化が生じることは確かだ。
例えばiPhoneで撮影した動画を動画編集ソフトで編集し、書き出してYouTubeにアップロード、それをiPhoneとAirPodsで組み合わせて視聴することを考えてみると…
(1)撮影時のカメラによるエンコード
(2)編集時、書き出し時のエンコード
(3)YouTubeによる配信向けエンコード
(4)Bluetooth A2DP伝送時のエンコード(音声のみ)
と動画は3回、音声は4回も再エンコードされることになる
ここでYouTuberが品質向上に関与できるのは(1), (2)となる
プロが使う設定にしよう
プロがミュージックビデオをアップロードするときは、以下のように指定されている。
この設定はアーティストなどに向けられたパートナー向け設定であるが、明確に「AACでのアップロードは推奨はしていない」と書かれているくらいである。
このパートナー向けの設定に従ってFLACまたはリニアPCMによるアップロードをすることによって、エンコーディングは1回で済むため、音質は良くなるはずだ。
ちなみに、YouTubeは広汎なコーデックを受け付けており、一般の人でも音声がリニアPCMで、動画がProResやDNxHDといったプロ用フォーマットでのアップロードができる。
YouTubeのパートナー用 公式ドキュメントや、私の経験から、私のお勧めするコーデックは以下のようになっている。
どんな設定でアップロードすればよいのか?
以下に列挙するのは私がアップロードを検証したものだ。YouTubeの対応コーデックにも準拠している。
動画:
ProRes 4444 XQ または DNxHD HQX 10bit (解像度、フレームレートは任意)
もし上記が不可能なら 10bit H.264/H.265 300Mbps〜 (なるべく最大)
YouTubeは CineForm にも対応しているが、私が対応機器を持っておらず検証はできていない
画質的にはDNxHD HQX (YCbCr 4:2:2) よりDNxHR 444 (12bit RGB 4:4:4) やDNxHD 444 (10bit RGB4:4:4) が高画質であるが、検証していない
音声:
Linear-PCM 48kHz (32bit floating-point or 24bit integer)または
FLAC 48kHz 24bit
(両方選べる場合は floating-point が使える Linear-PCMの方を選ぶこと)
※音声はクリップさせないこと(ピークメーターの赤い領域に入らないようにする)
YouTubeは現在 Opus コーデックというコーデックをメインとして使っており、このコーデックはサンプリングレート48kHzにしか対応していないため、アップロードの時点で48kHzにしておく
32bit 浮動小数点または24bit 整数でアップロードすること
アップロードの際はできればラウドネスにも気を付けたい
インターサンプルピークや、クリップによるエンコードの際の歪みを防ぐため、最大音量は大きくても -1dBFS に抑えておくこと
32bitまたは24bitでアップロードすることで、量子化誤差が減り、エンコード後の音質も上がる。これは、AppleのApple Digital Mastersでもプロ向けに解説があるくらいである。16bitによるエンコードは、普通「ディザリング」というノイズを加えることで聴感を良くしている。しかしながら、これをエンコードすると無駄に容量を食うことになるため、効率的ではない。Appleはそのため、Apple MusicのApple Digital Mastersでは24bitによる提出を義務付けている。
さて、以上の設定でアップロードすれば、私たちができるかぎりの、視聴者へ「高画質・高音質」で届ける方法の全ては行えた。あとはYouTube側のエンコード次第だ。
※32bit floating-point は0dBFSを超えても音割れせず表現ができるフォーマットではあるが、ターゲットとする圧縮コーデックにおいては音割れが起きうるので、少なくとも-1dBFSのヘッドルームを置くことをおすすめする。なお、整数部分では24/32bit floatともに表現力は同じであるが、32bit floatは中間フォーマットとして音割れを防ぐことができるメリットがあるため推奨している。十分なヘッドルームがあれば、音質は24 int/32 floatの間で変わらない。
映像コーデックのProResやDNxHRとは何か
これらは可逆動画コーデックではないものの、視覚的な劣化が極めて少なく、テレビ局の制作過程でも使用されるレベルのコーデックである。Adobe PremiereならDNxHRが使えるし、Final Cut ProならProResが使用できる。
ユーザー(アマチュア)向けのYouTubeのおすすめエンコード設定はH.264となっているが、このコーデックは8bitで出力するとコントラストの再現性が悪いし、またビットレートをあまり与えずに出力すると非常に荒くなる。かといって高画質な設定で出力すると、時間がかかる問題がある。
DNxHRやProResはエンコードが軽い上画質が高いので、中間ファイルとしても良く使われている。このコーデックのままYouTubeにアップロードすることで、制作過程で想定していたものに近い品質で視聴者に届けることができる。
我々コンシューマーユーザーがこういったファイルフォーマットを使えるのだから、せっかくだから享受して高画質・高音質の動画を上げようではないか。[終]
追記:以下のようにLive配信者向けに、OBS利用時の音質向上の方法の記事もあります。
(参考)自家撞着するようで申し訳ないが、現代では再圧縮によるロスは考えているほど多くはなく、実際に得られる画質・音質向上はわずかしかないと考えるのが妥当だろう。音声の再圧縮については、以下の記事で述べた。
ただ、おそらく動画を制作するあなたはエンドユーザーではなく、提供する側(プロフェッショナル)であり、他の動画で引用されたり参照されることもあるはずで、それを念頭に入れると、アップロード時に現時点で得られる最高品質を確保しておくのは悪くはないはずだ。