【OBS設定】YouTubeで登録者が少ないor再生数が少なくても高画質なvp9で配信してもらう方法

人気のYouTuberの動画はavcではなくvp9でエンコードされたデータを配信しています。
avcというのはh.264コーデックのこと。
要は圧縮形式(コーデック)の違いです。

ものすごくざっくり説明すると同じ画質の場合、ファイルサイズが以下のようになります。
h.264/avc > vp9 ≧ h.265/HEVC ≧ AV1
ということは同じファイルサイズの場合は画質が一番いいのがAV1となるわけです。


h264が古い規格でかつては標準規格でした。
その後継としてh265が出たのですが、ライセンス使用料を出したくなかった人たちが別の規格を考えました。
googleが作ったのがvp9でh265と同じくらいの圧縮率を目指しました。
さらに最近作られたのがAV1でh265よりも高い圧縮効率があるとかないとか…

そして、1080pで動画をYouTubeに登録した場合、
人気のないYouTuberの動画はavcで再エンコードされてしまうわけです。
ここで忘れてはいけないのがYouTubeの場合、
投稿されたものやライブ配信されたものは必ずYouTube側で再エンコードされるということです。

なので1080p(解像度1920x1080)でどんだけ高画質な動画をYouTubeに出そうが
視聴するときは必ず劣化します。

そこで裏技(?)を使って無理やりvp9にさせる方法を紹介しようというわけです。
結論としては1440p(解像度 2560×1440)でアップロードすればいいだけですが。

YouTubeでライブ配信したアーカイブをvp9でエンコードさせる方法

これも1440pで配信すればvp9になるわけですがそのためのOBSの設定を紹介します。

OBSの[設定]を開き[映像]の項目の [出力(スケーリング)解像度] の値を[2560x1440]にします。


とりあえずこれだけでvp9でエンコードしてくれるようになります。
確認方法はYouTubeの視聴している動画の上で右クリック
[詳細統計情報]をクリックすると出てきます。

vp9の場合

avcの場合

既に、ご自身の動画がvp9の場合は、1440pにする必要はないです。

YouTube Liveに高画質でエンコードしてもらう方法。

続いては、YouTube側で再エンコードされるのでなるべく高画質な動画をアップして、
再エンコード後の画質をきれいに見せる方法です。

ここではライブ配信での説明とさせていただきます。
動画をアップロードする際は時間さえあれば好きなだけ画質にこだわれるので割愛します。

ライブ配信の場合、エンコードをソフトウェアエンコードで行うとCPUのリソースを使ってしまい、
ゲーム配信の場合、ゲームのフレームレートが落ちてしまう可能性があります。
そこで、ハードウェアエンコードを使うわけですが、その為の私のOBS設定を紹介します。

ハードウェアエンコードというのはエンコード専用の処理を行う機能を使ってエンコードをすることです。
最近のGPUにはこの機能があるのでそれを使うことでゲーム性能をなるべく損なわず処理できるようになります。

AMDはほとんど知りませんがintelの場合内蔵GPU にこの機能がありますが、私はほぼ使ったことがありません。
NVIDIAの場合は世代によってこの機能に違いがあります。
今回はGTX900番台以降での説明になります。(GTX1080)

とりあえず、OBSの[設定]の[出力]から

まず、①の項目を[NVIDIA NVENC HEVC]にします。
これでGPUのハードウェアエンコードを使って出力してくれるようになります。
ちょっと話はそれますが、実はCPUを使ったソフトウェアエンコードでの方が画質はきれいです。
x264でエンコードしたものよりちょっとだけきれいかな?って程度になります。

②の項目はたしかライブ配信の場合CBRが推奨だったはずなのでそうしています。
CBRというのか固定ビットレートのことでビットレートを固定でエンコードを行います。
VBRというのが可変ビットレートのことで最適なビットレートをリアルタイムで変動してエンコードを行います。
VBRのほうが画質がほぼ同等のままで結果的にファイルサイズを小さくできますが、ライブ配信には向いていないそうです。
個人的にVBRは変なカクツキが出たりするので好きではないです。

③の項目はお使いの環境次第でってところがあります。
自分はとりあえず25Mbps(25000kbps) にしています。
YouTubeの推奨値は30Mbpsだったと思います。(1440p、60 fps)
これは実際にライブ配信をしているときにYouTube側のサーバーと通信(上り)を行う値(厳密には少し異なるが)
になりますので上りの通信速度が出ない環境だと映像が正しく送信されなくなります。
いろいろ試して最適な値を模索してみてください。

あとはまぁお好みでって感じにはなります。
こだわってみてもいいんですが、検証するのが大変そうなのでyoutubeの推奨設定にしています。
気になる方はネット検索で色々出ていますので調べてみてください。

プロトコル選択

後は効果があるかは実はいまいちわかってないのですが、
OBSの[設定]→[配信]項目のサービスを[YouTube - HLS]に変えています。
[YouTube - RTMPS]という項目のほうがデフォルトっぽいですがちと怪しいので。
HLSやRTMPSというのは通信プロトコルのことで、RTMPというものにセキュリティを追加したものがRTMPSっぽいです。
RTMPは古い規格でHLSというのが比較的新しめの様です。
RTMPの方が遅延を少なくできるようですが。軽く検証した感じあまり変わらなかったです。
結局YouTubeで再エンコードされるので遅延は結構あるはずなんでね。

大体こんな感じ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です