【Windows画面録画】OBSとNvidiaAPP(shadowplay)を比較する

雑記

どの録画ソフトが定番なのか

昨日Arma3の録画を見て感動したので、これに適したソフトウェアを探してみようと思う。

Blocked
まず参考にしたのはこれ。パッと見る限りだと、自分の使い方にはOBSが優れているように思える。
Blocked
しかしコメントを参考に、NvidiaShadowReplayというNvidaAPPの画面録画の存在を知った。

これらの名前がよく上がっていたので、まずは簡単そうなNvidiaから試してみる。

NvidiaAPPのshadowplayの感想

感想としては、自分はAV1対応のRTX4000シリーズを持っているので、XboxGameBarと同じ画質で、半分程度の容量を実現できるという点だ。

細かい設定も選べるが、触ってもそこまで変化は見られなかった。コーデックをh.264からAV1に変更し、解像度を1440pに変更した。

標準の1080pは見れたもんじゃない。少なくともWQHDゲーミングに慣れている自分にとっては、手動でWQHDを指定するかゲーム解像度に合わせるかのどちらかだろう。

あとはビットレート。高などの標準値があり、試しに2倍にしてみたが体感では感じられず。なので高にしておいた。標準値が安心だ。

そしてフレームレート。これは初期値30FPSだったので、60FPSにしてみた。120FPSは確かに滑らかさを感じるが、それ以上に容量が2倍になるデメリットが大きい。動画では使えないのも微妙だ。

試してみた印象だと、設定パネルの値からはこのような印象を受けた。

フレームレートとビットレートを選ぶ

60FPSと30FPSで比較すると、明らかに30の方が画質が良いように思える。そして容量も半分だった。

見た感じでは、別に30FPSでも違いは分かるけど、違和感は持たなかった。なので容量削減の観点からも、30で保存することにする。

ビットレートについてはredditでは50Mbpsが推奨されているけど、自分の環境ではなぜか表示されなかった。

これの答えは、画質設定で「ゲーム内解像度」を選んでなかったから。手動で「1440p」に設定していた。出力データを見ると「ゲーム内解像度」を選んでも1440pで出力はされるんだけど、画質の劣化が著しい。

特にArma3のように背景の木々とか細かい景観が重要なゲームだと、この違いが見えやすいみたいだ。

画質重視ならAV1ではなくH.264を使おう

いやー難しい。かなりの時間を費やしたが、画質を維持したまま容量を下げるのがベリーハードだ。

AV1の最高設定からH.264の最高設定にすると、格段に画質が良くなった。そもそもAV1自体、画質重視なら選んではいけない選択肢だったみたいだ。

結局、NvidiaAPPで高画質で録画するには?

ということで、NvidiaAPPを使ってゲームプレイを録画したいときは、H.264のビットレートマックス、そして解像度はモニタに合わせる、というのが最適解だと分かった。

AV1だと容量は半分になるけど、画質の劣化がやはり気になる。特に自分のようにArma3の細かい背景まで重視する場合は、なおさらだ。のっぺりとしたゲームなら目立たないのかもしれない。

そしてフレームレートは60ではなく30FPS。これも容量が2倍になる原因だ。見た感じだと、60の方が滑らかだけどゲームプレイを見返すなら必須じゃない。

30も味があって逆に良い感じとも言える。好みの問題だ。なら容量が半分の30FPS一択だ。

そして解像度は初期値の「ゲームに合わせる」だと勝手にダウンスケールされるのか、画質が悪くなる。シーンによってコロコロ変わるから困る。

急にガビガビになったり、至って普通に見えたりと安定しない。なのでモニタ解像度(今回は1440p)で固定する。こうすれば容量は増えるけど画質は安定する。

そして鬼門のビットレート。これは最低だと明らかに劣化が見えたし、オススメ上限の高設定でもまだ最高に比べるとジャギーが目立った。

なので設定できる最大値を選んだ。これができることの上限だから。

そして肝心のファイルサイズは、3分の収録で1GB 前後。多いっちゃ多いけど、編集して切り出して短くするなら気にしなくて良いかも、と思い始めた。

容量を減らすかつ見返しやすくすると思えば、編集のモチベーションにもなると思う。

念のためOBSも試してみる

ここまで書いといて何だけど、そもそも編集をする前提なら、NvidiaAPPを使わずOBSという他ソフトの方が良かったかもしれない。

このアプリの設計思想は多分、そのままソーシャルで共有することだ。AV1という配信用のコーデックが押されているのもそれが理由かもしれない。

とはいえ、NvidiaGPUの独自の部分を使って処理できる、という特徴は魅力的だ。だからまずは、これから試そうと思い立った訳だから。

ということで、一応OBSも試してみることにする。ファイルサイズは今回は一旦気にしない。画質のみを比べてみよう。

OBSの解像度設定

https://obsproject.com/kb/game-capture-source
OBS Studioには公式ドキュメントが整備されていた。英語だけど日本語ブログより多分分かりやすいはずだと思うので、見ながら作業しよう。

設定メニューで唯一詰まったのが、基本解像度と出力解像度という2つを設定しなければいけなかった点だ。なぜ2つあるのかが分からない。

標準設定では出力が1080p、基本が1440pだったのだが、これは配信用らしい。キャプチャは1440pで行い、それを出すときは1080pにする。こうすることで、より画質が良い1080pを作ることができるらしい。

帯域が限られている配信なら有効だが、今回は容量度外視でローカルに動画ファイルを保存するので、この設定は1080pから1440pに変更しておく。モニタと同じなら文句は無いはずだ。

解像度を揃えると負荷も下がるらしい

Blocked
このコメントに書かれているのがまさに自分がやりたかったことだ。

OBSの設定メニューから映像→一般を開くと、キャンバス解像度とスケーリング解像度という2つが表示される。

この2つを一致させることで、縮小フィルタ(ダウンスケールフィルタ)の欄には「解像度が一致、縮小フィルタは不要です」と表示されグレーアウトする。

この状態であれば、エンコードはNvidiaGPUの専用チップで行われ、ゲームプレイには全く影響を与えなくなる。前述のNvidiaAPPでの録画と同じ挙動だ。

配信先プラットフォームがWQHD非対応の場合は、画質を維持するためダウンスケールが必須だが、今回は動画ファイルを作ることが目的なので、考えなくてよい。

サイズについてには、7分の録画で5GBだった。以前に比べれば格段に大きいが、画質は雲泥の差だ。

ほぼ、ゲームプレイ時に目にしている画面と全く同じ映像が表示される。OBSの画質設定がデフォルトで「高」になっているのも関係しているのかもしれない。

その辺りの設定は、すべて標準のままだ。簡単、詳細とタブはあるが触っていない。

画質重視ならOBSが最適解

ということで、Arma3のゲームプレイをキャプチャし、後から見返すという今回の目的は達成された。Nvidia純正アプリよりも、OBSの方が優れているというのが結論だ。

ファイルサイズが大きくなっても良いから画質を重視、という自分の条件だと、手軽さを重視したNvidia公式では限界があった。

以後は、このソフトを使って録画していきたいと思う。