※この記事はASCII.jpからの転載です(文中リンクはASCII.jpの記事に飛ぶことがあります)
ではBorderlands 3を使ってもう少しエンコード設定とCPUパワーの関係を掘り下げてみよう。ここまでの話ではベンチマークモードを使っていたが、ここでは実際にゲームをプレイし、その模様をOBS Studioでストリーミング&録画した時にCPUはどの程度使われるか、エンコードミスはどの程度になるのかをチェックする。
ベンチマーク中の戦闘シーンが比較的穏やかであるため、あえて手動で激しいバトルをエンコードさせてみた。Borderlands 3側の画質設定はDirectX 12&バッドアス設定だが、解像度は2560×1440ドットとし、それをOBS側でフルHD&60fpsに変換する。また、配信が60fpsなのでBorderlands 3側も垂直同期をオンにして60fpsでキャップになるよう設定した。
ストリーミングのビットレートは筆者のネット回線の限界を上回らないよう9Mbpsに制限したが、録画は50Mbpsとし、エンコードのCPU負荷を変えて検証する。先のフレームレート検証ではOBS Studio側のエンコード設定はmediumに統一したが、ここではfast/medium/slowの3種類の設定(当然slowは画質が良い分重い)を試した。fastならGPUエンコーダーの結果に近いので、CPUを使うからにはmediumやslowでエンコードさせたいが、CPUパワーは間に合うか? という点を検証するのが目的だ。
ここでの検証では、x264のfast/medium/slow設定のエンコードがどれだけ破綻なく実行できるかを見る。Borderlands 3のステージ(マリワンテイクダウン)を開始時点から録画をはじめ、ボスを倒した時点で録画をストップ。各試行ごとのプレイ時間は一定ではない(ゲーム展開に依存する)が、概ね15〜20分程度だ。
録画終了時点でOBS Studioの統計ウインドウを見て、エンコードスキップの発生率をチェックする。エンコードスキップの発生は動画のカク付き頻度となるためゼロが目標、多くても1%未満に抑えたいところだ。CPUのコア数と録画条件でどう変化するのかが見ものだ。
この結果から読み取れるのは、OBS Studioでストリーミングと録画を別のエンコード設定にした場合、まともに見られる形でエンコードができるのはRyzen 9 3900X以上であり、8C/16Tの3800Xではエンコードスキップが非常に多く、3800Xのslow設定ではゲーム画面側も激しくカクつくためslow設定での測定は断念している。ただ、Ryzen 9 3900Xでもx264 fastが限界で、x264 medium設定にするにはRyzen 9 3950X以上のCPUが必要であることも分かった。
Ryzen Threadripperはコア数が多いだけあってx264 medium設定でもエンコードスキップが全く観測されなかった。Ryzen 9 3900Xのx264 fast、3950Xではx264 mediumではグラフ中では0%だが、ボスが大爆発するようなシーンではエンコードスキップが数フレーム発生しているので、ここがエンコードスキップが出る/出ないCPUの境目のようだ。Ryzen 9 3950XよりもRyzen Threadripper勢の方が安定感が格段に違う。
しかし、x264 slowともなるとどのCPUでもエンコードミスが発生。Ryzen Threadripper 3990Xのエンコードミス率は3970Xの半分以下であるため、コアが多いだけの今回設定したOBSの設定下では、CPUエンコードの限界はx264 mediumまでで、Ryzen Threadripperなら安定性抜群、といえる。ただ、表で走らせるゲームの選択や、ビットレートの選択次第ではエンコードスキップの比率がまた変わってくるので、あくまでこの例では、という話にとどめたい。
このテストにおいて、各CPUがどれだけ使われているかについても比較しておこう。実際にOBS Studioでゲーム画面の上にタスクマネージャーをオーバーレイ表示させ、それを録画したものからトリミングしたものを見てみよう。