Encoding video is very CPU Intensive Operation, and OBS is no exception. OBS はビデオをエンコードするために、利用可能な最高のオープンソース ビデオ エンコーディングライブラリである x264 を使用しています。 しかし、人によっては高いCPU使用率を経験するかもしれませんし、あなたのコンピュータのハードウェアに対して設定が高すぎる場合、OBSがアクティブになっている間、あなたのコンピュータで実行中の他のプログラムがパフォーマンスの低下を経験するかもしれません。 場合によっては、OBS のステータスバーに “Encoding overloaded!” と表示されます。これは、コンピュータが設定された設定を維持するためにビデオを十分に速くエンコードできず、ビデオが数秒後にフリーズしたり、周期的なスタッタリングを起こしたりすることを意味します。

Encoding overload

リソースの使用量を減らし、OBS とプログラムの両方をエンコード中に速く実行できるようにする方法をいくつか紹介します:

Downscale your output resolution

エンコードする解像度は CPU 使用率に最も影響を及ぼします。 たとえば、1080p は 720p に比べて各フレームのピクセル数が 2 倍以上あり、CPU 使用率もそれに応じて増加します。 CPU使用率を減らす最も一般的な方法は、解像度をダウンスケールすることです。 ダウンスケールすると、OBSはシーンを受け取り、エンコーダーに渡す前にあなたが指示した分だけ縮小します。 コンテンツの解像度が1080pなので、基本解像度を1080pにしたいと思うかもしれませんが、CPUはダウンスケールされていない1080pのビデオをエンコードすることができないかもしれません。 そこで、解像度を 720p (またはそれ以下) にダウンスケールして、画像はそのままに、より小さな解像度を使用して CPU の負荷を軽減することができます。

設定 > ビデオ > 出力(スケーリング)解像度 で、ダウンスケールする量を変更することができます。 基本 (キャンバス) 解像度を同じにして、レイアウトを変更しないようにし、その後、良いパフォーマンスを得るために解像度をダウンスケールすることができます。 性能的にはそれほど変わりませんが。

Lower your frame rate

30 FPS 以上でストリーミングしている場合、別の選択肢として、フレーム レートを 30 FPS に下げることを検討することも可能です。 これは、CPU が一定時間内に処理しなければならないフレーム数を削減し、CPU 使用率を低減します。 CPU が本当に弱くて苦労している場合、フレーム レートを 30 FPS 未満に下げる必要性を感じるかもしれません。

x264 プリセットを変更する

ビデオ エンコーダー、x264 には、ビデオの品質と CPU 使用率を適宜変更するための「プリセット」がいくつかあります。 OBSのデフォルトはveryfastで、ほとんどの場合、CPU使用量とビデオ品質の最適なバランスです。 この設定は、設定 > 出力 (簡易モードの場合は、高度なエンコーダ設定を有効にするをチェック) > エンコーダプリセット.

プリセットの名前は、エンコーダがどのくらい「速く」動作するかを示すことを意図しています。 より速いプリセットは、質の高い計算を犠牲にして、より少ない CPU を使用します。 より遅いプリセットは、品質のためにより多くの計算を使用しますが、より多くの CPU を使用します。

たとえば、解像度または FPS を変更せずに CPU 使用率を削減したい場合、x264 プリセットを superfast または ultrafast に変更することにより CPU 使用率を削減でき、x264 は画像を良く見せようとしてより少ない時間を費やし、CPU サイクルを節約することになります。 画像は少しブロック化またはピクセル化されたように見えるかもしれませんが、解像度/fps を維持することができます。

この設定には非常に注意が必要で、1 ステップ速くまたは遅くするだけでも、CPU 使用率に大きな影響を与える可能性があります。 例えば、「faster」というプリセットは、そのすぐ上にある「veryfast」の2倍のCPUを使用することがあります。 何を設定したらよいかわからない場合は、常に veryfast に戻してください。

Quicksync, AMF, NVENC を試す

Quicksync, AMF, NVENC はそれぞれ最近の Intel Integrated GPU、最新の AMD GPU、および最近の nVidia GPU に搭載されているハードウェア エンコーダーです。 同じビットレートでも品質が多少低下しますが、エンコーディングの負荷をこれらのハードウェアエンコーダーにオフロードすることができます。 一般に、GPU ベースのエンコーダーは、特定のビットレートで x264 ほどの高品質ではありませんが、CPU の負荷が大幅に軽減されるという利点があります。

上記のハードウェア エンコーダーを使用している場合、これらのオプションがエンコード設定で利用できるかどうかを確認できます。

  • Quicksync は設定するのが少し難しいですが、ここにガイドがあります。 https://obsproject.com/forum/resources/how-to-use-quicksync.82/
  • 同様に、AMF エンコーダーのトラブルシューティングガイドはこちらです。 https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Troubleshooting-Guide

Check your sources

Web カメラやキャプチャカードなどの一部のソースは、ビデオ データをデコードする必要があるので、シーンに存在するだけで多くの CPU を使用する可能性があります。 Web カメラを使用している場合、高すぎる解像度で実行されていないことを確認してください (全画面表示でない場合、480p 以上はほとんど必要ありません)。 特にLogitech C920は、1080pのフル解像度で動作させると、多くのシステムで問題が発生します。 ブラウザのソースは、複雑なアニメーションやスクリプトがアクティブになっている場合、CPU を消費することもあります。 https://www.youtube.com/watch?v=a274YynXRwI

Upgrade your hardware

一部の CPU は非常に弱く、まともなものを動作させるのはほぼ不可能に近い状態です。 デュアルコア CPU および AMD APU は、特に悪名高いものです。 超高速プリセットを使用して、25 FPS で 360p ストリームを実行することは可能かもしれませんが、見栄えはよくありません。 その辺の判断はあなた次第です。 もしあなたが Sandy Bridge i5 または i7 以降、あるいは AMD 6 コアまたは 8 コア以降を使用しているなら、妥当な解像度とフレーム レートで、まともに見えるストリームを作成できるはずです。

OBS は他の多くのストリーミング/レコーディング プログラムと異なり、GPU を使用して優れたパフォーマンスを実現します。 残念ながら、一部の古い GPU や格安モデルの GPU では、これがストリームのパフォーマンスのボトルネックとなることがあります。 これは一般に、低いメモリ帯域幅および/または低いプロセッサコア数が原因です。 nVidia GTX 200 シリーズ (250、260、280) および 9800GT 以前の GPU は、当時は非常に強力でしたが、現在では非常に古いカードであり、OBS パフォーマンスに大きな影響を与えることになります。 これには、Battlefield 4 のような明白なものと、エミュレーター経由でプレイするゲームのような明白でないものがあります。 ゲームが多くのCPUを使用する場合、OBSがゲームに干渉するのと同じように、OBSに干渉することがあります。したがって、あなたがプレイしているゲームを補償するために、これらの設定を下げることを検討する必要があります。 また、設定 > 詳細の「プロセスの優先度」設定で、プログラムのプロセッサの優先度を上げたり下げたりすることができます。 OBSがシステムによって優先され、スムーズに動作するように、OBSに「通常より上」のプロセス優先度を与えることが一般的ですが、注意して使用してください

Articles

コメントを残す

メールアドレスが公開されることはありません。