【2019年8月更新】YouTubeのエンコード事情

少しずつ、YouTubeのエンコード事情が変わりつつあるのでメモ代わりに書いておく。

再エンコード事情

もちろんかつてのニコニコ動画のように、アップロードした動画をそのまま視聴可能にしておけば、転送量が肥大化してYouTubeの回線がパンクしてしまいます。そこで、YouTubeをはじめとするほとんどの動画共有サイトが「再エンコード」という仕組みを利用しています。

再エンコードでは、決まったコーデック、ビットレートに合わせてYouTubeのサーバー上でエンコードしなおす事で、ある程度画質の劣化を抑えつつ転送量を削減します。逆にこの仕組みがあるからこそ、変な動画フォーマットをアップロードしても問題ないんですね。

しかし残念ながら、情報量を減らすことをしているので当然画質は少なからず落ちます。そこで、できるだけ高画質にYouTubeにアップロードする方法を考えました。

YouTubeの推奨エンコード設定

YouTubeのヘルプにアップロードする動画におすすめのエンコード設定というものがあり、とりあえずこれに合わせるのが無難だと思います。

たぶんこのようなビットレート、形式でエンコードされたファイルが投げられることを想定した再エンコードを行うと思うので、これ以上高画質になるような設定でも多分無駄になるんじゃないかなぁ……?と。しらんけど。

H.264とVP9

基本的にほとんどの動画編集ソフトがH.264形式のエンコードを行うので、現時点ではこれが標準だと言えます(Adobe Media EncoderのYouTubeプロファイルもH.264ですし)。しかしながら、現在人気のあるYouTube動画のほとんどはH.264で再生されるのではなく、VP9エンコードされたものが再生されます。

(最もYouTube上で再生されているであろう動画。動画はVP9、音声はOpusでエンコードされている。)

VP9というコーデックはGoogle開発のもので、同ファイルサイズの場合H.264よりも画質が良く、現在では多くの端末でハードウェアデコードが可能です。動画共有サイトであるYouTubeでは転送量の肥大化が死活問題ですから、このような優れたコーデックを使ってなんとかしたいわけですね。

ただ、じゃあなんでもかんでもVP9で再エンコードされるかというと、そうではなく、ある一定の基準があるようです。

  • チャンネル登録者数が1万、10万規模のチャンネルにアップロードされた動画(即VP9エンコード?)
  • ある程度再生された動画(チャンネル登録者数と相関がある。僕のチャンネル(6000+人)ではだいたい1000回がボーダー。2000+人ほどでは1万回に達してもH.264のままだったりする)
  • 画質が1440p以上の動画(上2つと相関があるかどうか不明だが、VP9エンコードされやすい)

まぁニッチな動画を投稿している人には厳しい条件なのですが、これはもう過去の話なのかもしれません。

とりあえず現状VP9エンコードが最適解

前節の厳しい(?)条件は、もう無くなってしまったのかもしれません。

2019年8月2日辺りから、なんとVP9エンコードされた動画をアップロードした場合、H.264で再エンコードされずVP9で再エンコードされるっぽいです。

こちらがアップロードした動画のエンコード設定。基本的には前前節の推奨エンコード設定と同じ。

こちらがチャンネル登録者数0人のチャンネルにアップロードして動画の処理が完了した直後のデバッグ情報。しっかりVP9動画として再生されています。

(言うまでも無いですが、H.264で再エンコードされた動画よりも、VP9で再エンコードされた動画の方がキレイに見えます。ノイズの少なさ的に。)

ということで、VP9でエンコードしてアップロード、しよう!VP9はいいぞ。Opusはいいぞ。WebMコンテナはいいぞ。

全然関係ないメモ

  • YouTubeがHD化されたとき過去にアップロードされた動画も720p、1080pになったことから、YouTubeは動画の原本を保存しているはず
  • 今でもそうであるならば、いま高画質でアップロードした場合、将来的に新しい革命的なコーデックが誕生したとき、最善の画質が得られる?