High CPU Usage/High Encoding/taking too long to encode? まずこれを読んでください!

ビデオのエンコーディングは非常に CPU 負荷の高い操作で、OBS も例外ではありません。 OBS は、利用可能な最高のオープン ソース ビデオ エンコード ライブラリである x264 を使用してビデオをエンコードし、ハイエンド GPU で NVENC のようなハードウェア エンコーダを使用することができます。 しかし、人によってはCPU使用率が高くなることがあります。また、お使いのコンピュータのハードウェアに対して設定が高すぎる場合、OBSがアクティブになっている間、コンピュータで実行中の他のプログラムの性能が低下することがあります。 場合によっては、OBS のステータスバーに “Encoding overloaded!” と表示されます。これは、コンピュータが設定した設定を維持するためにビデオを十分に速くエンコードできず、ビデオが数秒後にフリーズしたり、周期的な吃音が発生することを意味します。
以下に、リソース使用を減らし、できればエンコード中に OBS とプログラムの両方を速く実行できる方法をいくつか紹介します:
Downscale your output resolution
The resolution being encoding at CPU usage has biggest impact on. たとえば、1080p は 720p に比べて各フレームのピクセル数が 2 倍以上あり、CPU 使用率もそれに応じて増加します。 CPU使用率を減らす最も一般的な方法は、解像度をダウンスケールすることです。 ダウンスケールすると、OBSはシーンを受け取り、エンコーダーに渡す前にあなたが指示した分だけ縮小します。 コンテンツの解像度が1080pなので、基本解像度を1080pにしたいと思うかもしれませんが、CPUはダウンスケールされていない1080pのビデオをエンコードすることができないかもしれません。 そこで、解像度を 720p (またはそれ以下) にダウンスケールして、画像はそのままに、より小さな解像度を使用して CPU 負荷を軽減します。
ダウンスケールする量は、設定 > Video > Output (Scaled) Resolution で変更することができます。
異なるダウンスケール フィルター (バイリニア、バイキュービック、および Lanczos) は、画像を縮小するために使用されるアルゴリズムを変更するだけです。 性能的にはそれほど変わりませんが。
フレーム レートを下げる
30 FPS 以上でストリーミングしている場合、別のオプションとして、フレーム レートを 30 FPS に下げることを検討することもできます。 これは、CPUが一定時間内に処理しなければならないフレーム数を減らし、CPUの使用率を減らすことができます。
ハードウェア エンコーダー (Quicksync、AMF、または NVENC) を使用する
Quicksync、AMF、および NVENC は、それぞれ最近の Intel Integrated GPU、新しい AMD GPU、および最近の NVIDIA GPU に搭載されているハードウェア エンコーダーです。 これらのハードウェア エンコーダーにエンコード負荷をオフロードすることができますが、その代償として、同じビット レートでの品質が多少低下します (ただし、最新の NVIDIA カードはソフトウェア エンコードより実際に優れています)。 QSV / AMF は低ビットレートでは特に悪いので、ストリーミングにはお勧めできません。
前述のハードウェア エンコーダーをお持ちの場合、それらのオプションがエンコード設定で利用できるかどうかを確認することができます。 https://obsproject.com/forum/resources/how-to-use-quicksync.82/
同様に、AMF エンコーダーのトラブルシューティングガイドはこちらです。 https://github.com/Xaymar/obs-studio_amf-encoder-plugin/wiki/Troubleshooting-Guide
x264 のプリセットを変更する
ソフトウェア エンコーダー (x264) を使用している場合、いくつかの「プリセット」があり、それに応じてビデオの品質と CPU 使用率を変更します。 OBSのデフォルトはveryfastで、ほとんどの場合、CPU使用率とビデオ品質の最適なバランスになっています。 この設定は、設定 > 出力 (簡易モードの場合は、高度なエンコーダ設定を有効にするをチェック) > エンコーダプリセット.
プリセットの名前は、エンコーダがどのくらい「速く」動作するかを示すことを意図しています。 より高速なプリセットは、品質の計算を犠牲にして、より少ない CPU を使用します。
たとえば、解像度や FPS を変更せずに CPU 使用率を減らしたい場合、x264 プリセットを超高速または超高速に変更することにより、CPU 使用率を減らすことができます。 画像は少しブロック化またはピクセル化されたように見えるかもしれませんが、解像度/fps を維持することができます。
1 ステップ速くまたは遅くするだけでも CPU 使用率に大きな影響を与えることがあるので、この設定には非常に注意してください。 たとえば、「faster」というプリセットは、そのすぐ上にある「veryfast」の 2 倍の CPU を使用することができます。
ソースをチェックする
Web カメラやキャプチャカードなどの一部のソースは、ビデオ データをデコードする必要があるため、シーンに存在するだけで、多くの CPU を使用する可能性があります。 Web カメラを使用している場合は、高すぎる解像度で実行されていないことを確認してください (フル スクリーンでない場合は、480p 以上はほとんど必要ありません)。 ブラウザのソースは、複雑なアニメーションやスクリプトがアクティブな場合にも CPU を消費します。
異なるシナリオのために多くの異なるシーンがある場合、適切であれば、それらを別のシーン コレクションに分割することを検討してください。 これは、OBS が追跡しなければならないアクティブなソースの数を減らし、CPU 使用率を減らすことができます。
ハードウェアのアップグレード
一部の CPU は非常に弱く、まともなものを動作させるにはほぼ絶望的です。 デュアルコア CPU と AMD APU は、特にこの点で悪名高いです。 このような場合、超高速プリセットを使用して25FPSで360pのストリームを得ることができるかもしれませんが、それは確かに良い見ていないでしょう。 その辺の判断はあなた次第です。 もし、Sandy Bridge i5 または i7 以降、あるいは AMD 6 コアまたは 8 コア以降を使用しているなら、妥当な解像度とフレーム レートで、まともに見えるストリームを作成できるはずです。
OBS は他の多くのストリーミング/レコーディング プログラムとは異なり、GPU を使用してより良いパフォーマンスを実現します。 残念ながら、一部の古い GPU や格安モデルの GPU では、これがストリームのパフォーマンスのボトルネックになることがあります。 これは一般に、低いメモリ帯域幅および/または低いプロセッサコア数が原因です。
すべてのオーディオソースを同じ周波数で実行する
デスクトップオーディオが44100 Hzで動作しているのに、OBSが48000 Hzでエンコードするように設定している場合、オーディオをリサンプルする必要があり、これはCPU時間を使用します。 異なるサンプルレートを使用するオーディオソース(例:マイク、メディアソース)を追加すればするほど、より多くのCPU使用率がリサンプリングによって消費されます。
他のプログラム/ゲームもCPUを使用する
特定のプログラム(特にゲーム)は、多くのCPUを使用することがあります。 これには、Battlefield 4 のような明白なものと、エミュレーター経由でプレイするゲームのような明白でないものがあります。 ゲームが多くのCPUを使用する場合、OBSがゲームに干渉するのと同じように、OBSに干渉する可能性があるので、あなたがプレイしているゲームを補うために、これらの設定を下げることを検討する必要があります。 また、設定 > 詳細の「プロセスの優先度」設定で、プログラムのプロセッサの優先度を上げたり下げたりすることができます。 OBSがシステムによって優先され、スムーズに動作するように、OBSに「通常より上」のプロセス優先度を与えることが一般的ですが、注意して使用してください。
ログアナライザーを通してログを実行し、より多くのアドバイスを得る
OBSの動作速度を低下させている原因が他にある場合、R1CHのログアナライザーでOBSログを実行すれば、しばしばそれを見つけることができます。 これは、動作を遅くしている可能性のある他のパフォーマンスの問題や、あなたの設定に問題がある可能性を知らせてくれるでしょう。 これはOBSのヘルプ > ログファイルメニューから、あるいはアナライザーサイトのボックスにログを貼り付けることで行えます。

コメントを残す

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