特集
デフォルト設定で使ってる人は注意。配信ソフト「OBS」で見落としがちな高画質化/フレーム落ち対策のポイント
2021年5月25日 06:50
PC向け配信ソフトとして、無料ながら高度な機能を持つことで多くの人に使われている「OBS Studio」(以下、OBS)。しかし、デフォルト設定では、画質や負荷の面で最良の設定になっているわけではない。本稿では、そういったOBSで見落としがちな、高画質化/フレーム落ち対策のポイントを紹介する。
今回の検証にあたり、マウスコンピューターのゲーミングPC「G-Tune E5-165」を利用した。主な仕様は、Core i7-10870H、メモリ16GB、NVMe SSD 512GB、2,560×1,440ドット15.6型液晶、GeForce RTX 3060 Laptop GPU、Windows 10 Home。スペック的にはゲーミングマシンとしてミドルレンジとなる。OBSはバージョン26.1.1を用いている。
出力解像度とフレームレートを上げよう
OBSの出力(配信)解像度の初期設定は1,280×720ドット/30fpsになっている。多くの配信プラットフォームでは、1,920×1,080ドット/60fpsまでサポートしており、ゲームにおいても一般的に快適な設定は1,920×1,080ドット/60fpsなので、これにあわせることで、画面の精細さが向上し、描画がスムーズになる。
変更するには、「設定」ボタンを押し、「映像」タブの「出力解像度」を「1920x1080」に、「FPS共通値」を「60」にする。
なお、配信プラットフォームによっては、一般ユーザーの出力解像度が1,280×720ドットに制限されている場合もある。この場合は、これらの設定はデフォルトのままでいい。
適切なビットレートを設定しよう
出力解像度とフレームレートにあわせて、配信ビットレートを適切なものにするのも大事だ。ビットレートは、高ければ高いほど、ブロックノイズが減る。しかし、例えば40Mbpsなど高すぎる設定にすると、視聴者が利用するネットワークの帯域が狭いと、フレーム落ちが発生し、カクついたり、頻繁に配信が途切れたりすることになる。
1,920×1,080ドット/60fpsの場合、適切なビットレートは4,500~9,000kbpsとなっている。カメラ映像のみで配信者が話しているだけのような動画なら、映像の変化が少ないので4,500kbpsくらいでも問題ない。
しかし、ゲーム配信の場合は、ゲームにもよるが、画面全域が激しく書き換えられるので、4,500kbpsだとブロックノイズが発生しがちになるため、9,000kbps程度まで引き上げるといいだろう。ただし、Twitchについては、基本的に上限は6,000kbpsとなっている。YouTube、Mildomだと9,000kbpsでも大丈夫だ。
変更するには、「設定」ボタンを押し、「出力」タブの「映像ビットレート」を書き換える。
適切なエンコーダを選ぼう
ビットレートとあわせて、適切なエンコーダを利用するのも重要だ。エンコーダは、取り込んだ映像を圧縮するのに使われるもの。OBSバージョン26.1.1だと、GeForceが搭載されている場合、デフォルトでGeForceに搭載されたハードウェアエンコーダが利用されるが、古いバージョンだとCPUによるソフトウェアエンコーダが使われるため、CPU負荷が高くなり、配信だけでなくゲーム自体がかくつく原因となる。
デフォルトでは、OBSの「設定」→「出力」タブの「出力モード」が「基本」となっており、その下にある「エンコーダ」が「ハードウェア」になっていればいい。だが、「出力モード」を「詳細」にして、細かな設定をした方がいい。
「配信」タブの下に表示される「エンコーダ」はGeForceなら「NVIDIA NVENC H.264(new)」に、Radeonなら「H264/AVC Encoder (AMD Advanced Media Framework)」に、「レート制御」は「CBR」に、「ビットレート」は前述の設定にする。それ以外は初期設定のままでいい。
今回、G-Tune E5-165で、NVIDIA NVENC H.264(new)とソフトウェアエンコーダ(x264)でCPU負荷を比較したところ、前者の場合35%程度だったCPU負荷が、後者では65%にまで上がった。この製品に搭載されているCore i7-10870Hは8コアなので、ソフトウェアエンコーダでもゲームや配信のフレームレートが下がることはなかったが、4コア程度のCPUだと、エンコードが原因でゲームや配信がかくつく要因となる。ハードウェアエンコーダを活用しよう。
スケールフィルタを設定しよう
高画質化について、おそらくもっとも見過ごされているのが、スケールフィルタだろう。解像度やビットレートは問題ないのに、スケールフィルタの設定がデフォルトのままで、ワイプなどの画質が下がっているケースをよく見かける。
OBSのスケールフィルタには、「ポイント」、「バイリニア」、「バイキュービック」、「ランチョス」、「エリア」の5種類があるが、デフォルトでは無効化されている。そのため、髪の毛のような細いもの、斜めの直線、輪郭などがギザギザしていたり、ギラついて見えるようになる。
そこで、スケールフィルタを利用すると、画像/映像の拡大/縮小を行なう時に、適切な画素の補間を行なってくれるので、スムーズな仕上がりとなる。特にワイプは元のサイズより縮小して表示することが多いので、スケールフィルタを適用したい。これは、ワイプや画像など縮小表示しているものそれぞれに適用する必要がある。
この内、筆者が試した限り「ポイント」はあまり効果がなく、「バイリニア」、「バイキュービック」、「ランチョス」、「エリア」では、縮小したワイプ画像が滑らかに表示された。
別のソフトとなるが、映像編集ソフト「EDIUS」のサイトによると、縮小の場合ランチョスが推奨されている。ランチョスでオーバーシュートが目立ったり、CPU負荷が高すぎる場合は、エリア(面積平均法)を、エリアを選択してギザギザが目立つ場合はバイリニアを選ぶといいとされている。
ゲーム配信を行なうPCは、ある程度性能の高いものなので、スケールフィルタの違いでCPU負荷の違いはほとんど出ないようだ。実際、今回利用したG-Tune E5-165で、バイリニアとランチョス(これがCPU負荷が高い)でCPU負荷やゲームのフレームレートに変化はなかったので、ランチョスを選んでいいだろう。
ただし、ランチョスでは、前述のとおりオーバーシュートが発生する場合がある。オーバーシュートとは、画像処理の段階でエッジに縁どりがあるように表示され、エッジが元素材よりも肥大して太く見える現象のこと。筆者の環境では特にオーバーシュートは出ていないようだが、発生する場合は、バイリニアにするといいだろう。
音声ビットレートを変更しよう
これは映像ではなく音質についてとなるが、OBSのデフォルトでは、音声トラックのビットレートは160kbpsになっている。Twitchでは、少し前に音声ビットレートの上限が320kbpsに引き上げられた。また、明言はされていないが、Mildomも320kbpsで問題は起きていない。
音声ビットレートを上げた分、映像に使えるデータ量が減るものの、全体で数千kbpsある中の160kbpsが減ったところで画質に与える影響は少なく、逆に音声はビットレートが2倍になるので、音声ビットレートは上げた方がいいだろう。
変更は、「出力モード」が「詳細」の場合、「設定」→「出力」タブの「音声」のタブで行なう。6トラックまであるが、普通は1トラックしか使わないので、「トラック1」のみ変更すれば良い。
アーカイブをアップロードし直す場合は、ローカル録画を行なおう
TwitchやMildomで生配信を行なった後、同じ動画をYouTubeにアーカイブとしてアップロードする人もいるだろう。TwitchもMildomも生配信のアーカイブデータを後からダウンロードできる。しかし、Twitchは再エンコードを行なっているようで、アーカイブデータは若干画質が下がっている。Mildomでは再エンコードは行なっていないようだが、YouTubeにはより高いビットレートの映像をアップロードしたいという場合もあるだろう。
マシンの性能に余裕があるなら、配信とは別の画質設定でローカルに録画するようにしておけば、生配信よりアーカイブの画質を上げることができる。
「設定」の「出力」を開き、「録画」タブの「エンコーダ」を「ストリームエンコーダを使用」から「NVIDIA NVENC H.264(new)」に変更すると、配信とは別に録画用のビットレートなどを設定できる。
録画フォーマットはデフォルトでは「mkv」になっているが、「mp4」にした方が扱いやすいだろう。mkvは万が一マシンが配信/録画中に止まったりしても、そこまでの映像がきちんと記録されるメリットがあるので、そこを気にするならmkvのままの方がいい。