misc.log

日常茶飯事とお仕事と

ゲーム動画録画ツールをOBSに変更した

ゲームのプレイ動画を録画するツールを、従来使っていたGeForceグラフィックカード付属のツール「GeForce Experience」の「インスタントリプレイ」から、OBSというツールに変更しました。

変更した理由

主に下記の2点です。

  • GeForce Experienceのインスタントリプレイが不安定になることが結構あった
  • 鳴潮など新しいゲームの録画がすぐにできない(手はあるが、これまた不安定な方法になる)

前者ですが、下記に記載したように、背後で動かしているアプリや、OSの状態、GeForceドライバーの更新状況によっては、不意に動かなくなることがあったためです。

www.backyrd.net

特に、背後で動かすと録画が不安定になる代表格が、私が動画編集に使っているTMPGEnc Smart Renderer 6(MPEG動画を無劣化で切り貼りできるツール)。これが背後に立ち上がった状態だと、どうもGeForce Experienceがこのツールを録画対象に捉えてしまい、肝心のゲーム画面が録画できないことがしばしばありました。これが、実際に録画を完了して動画を確認するまで分からなかったりするので厄介だったのです。

あと、後者は下記のページに書いているように、新しく出たゲームはGeForce Experienceが「ゲーム最適化対象」として認識するようになるまでは、一手間掛けて「このアプリを監視せよ」という設定をする必要があります。それも、また何かの拍子に録画できなくなったり非常に不安定なので、毎回「録画開始してみて、実際に撮れているかどうかを調べてから録画」といった手間が掛かりストレスになっていました。

www.backyrd.netwww.backyrd.net

代替ツールとして検討した「Microsoft Game Bar」

そこで、代替ツールとして候補にまずあげたのが、マイクロソフトの標準ツール「Game Bar」です。これはウィンドウズキーとGを押すことで設定などが開くWindows標準搭載の機能。画質設定などは2段階だったり、設定はシンプルですが、前述のGeForce Experienceのように対応ゲームとして録画ツールが認識するのを待つ必要も無ければ比較的安定して使えました。しかしこれも、下記の理由で諦めました。

  • ゲーム起動後、しばらく録画機能が使えないことがある(原因や理由不明)
  • ゲーム画面から別のツールにフォーカスを切り替えると、そこで録画が終了する

特に後者ですね。私はデュアルディスプレイ環境でゲームをやっており、片方でマップデータやWebサイト、録画結果を保存したフォルダーなどを表示しながらゲームを録画しています。で、ひょんなことからマウスカーソルがゲームの画面から飛びだしたところでマウスをクリックし、フォーカスがバックグラウンドの他のツールに移ると、そこで録画は途切れます。これに気付かないと、途中から全く録画されないということも。こうした事故が何度かあったのと、あとはその状況から復帰したつもりが、「ゲームでないアプリ上で録画開始」してしまい、ゲームの音声にアプリの画面、という動画が撮れることが何度かあったためです。この現象に、前述の「しばらく使えないことがある」が合わさり、イライラしたので利用を止めました。

OBSを導入する

そこで、ゲーム実況、配信者などがよく使っているというOBSというツールを使ってみることにしました。

obsproject.com

OBSだと、前述のような「ゲーム中に他のアプリにフォーカスが移る」といった場面でも、ゲームの状態をそのまま録画し続けてくれます。また、GeForce Experienceインスタントリプレイのような「直前までの10分を録画」といった機能もあります(リプレイバッファ機能。Game Barにもありました)。そして、なにより気に入ったのが「録画をプレビュー表示してくれる」という点。これにより、仮に設定ミスや操作ミス録画できていなくても、プレビューが真っ黒のままで「録画していない」ことが分かるので。気付かずにゲームを進めてしまって肝心なシーンを逃す、ということが起きづらそうです。

OBSで鳴潮のログイン画面を映している様子

OBSを使えるようにする

というわけで使ってみたOBSですが、普通に使えるようになるまで少々戸惑いました。まず、そもそもが配信などを目的としたツールなので、ただ単にゲームプレイ動画を録画したい自分には多機能すぎます。たとえば、1つの「配信用画面」にゲームの内容を表示したウィンドウや、その他の表示を統合してレイアウトする機能、こういった機能は自分には不要なのですが、基本的にこういう使い方が主なので、要らない機能が何なのかを見極めるのに少し時間が掛かってしまいました。最終的に、下記の使い方に絞って利用しています。

  • シーンの定義は1つのみ
  • ソースは「ゲームキャプチャ」のみで、「フルスクリーンアプリケーションをキャプチャ」に指定
  • 録画は下記の設定
    • 「出力」の「出力モード」は「詳細」で
    • 「出力→配信」のビットレート20,000 Kbps、キーフレーム間隔は1s
    • 「出力→録画」はフォーマットをMKVにし、「詳細設定」の「自動的にmp4に再多重化する」をONにして最終出力をMP4に。映像エンコーダは「配信エンコーダを利用」
    • 「出力→リプレイバッファ」は600s(10分)に
    • 「映像」のFPSは60に

これで、だいたい1分の動画が130~150MB。10分で1.5GB前後。30分の動画で3~4GB。我が家の通信環境だと、だいたい6GBぐらいまではYoutubeにアップロードしても実用域で使えるので、無劣化カット編集で作った動画をサクッとアップロードできます。また、キーフレームを1sにしているのは編集ツールでの編集性能を上げるためです。この部分、初期設定だと「自動」で、出力される動画の「GOP最大フレーム数」は250とかになります。これだと動画編集ツールでマウススクロールによるコマ送りをした際の移動量が3~4秒ぐらいになり、細かい制御がしづらい。そこで、キーフレーム設定を1秒にすることで、GOP最大フレーム数を60まで落としました。ちなみに、GeForce Experienceのインスタントリプレイで録画される動画のGOP最大フレーム数は30。かなりきめ細かい動画になっており、ずっとこれで編集作業していたので、この部分はなるべく近い値になるよう調整しました。

本当ならもう少し最大フレーム数を下げたいのですが、OBSのこの設定ではキーフレーム間隔は1秒が最小のようです。

ってな具合で、使うツールをOBSに乗り換えた件、自分用の設定内容のメモでした。

参考: 動画の最大GOPフィールド数比較

参考までに、GeForce Experienceのインスタントリプレイ、Game Bar、OBSの録画データ情報のうち、最大GOPフィールド数の部分を出しておきます。

GeForce Experienceインスタントリプレイの場合
Microsoft Game Barの場合
OBS(初期設定)で録画した場合
OBS(キーフレーム1秒)で録画した場合

ちなみに、私が動画の保存用に少しサイズを落とすため、いつもやっているTMPGEnc Video Mastering Worksでのエンコード結果は最大GOP250フレームでした。なので、OBSの初期設定は「よくある設定」なのかもしれません。

ただ、動画フォーマットには詳しくないので的外れかもしれませんが、編集用の素材として記録するための録画であれば、GOP内フレーム数は少ない方が編集ツール上での操作やスピードは速くなるようです(まぁ、GOPの途中でコマ送りを止めた場合、差分紙芝居データからその場面の1枚絵を作ってプレビューやサムネイルに表示、という処理が発生するわけで。負担ですよね)。

録画した動画の編集がなんかやりづらい、という方は参考にどうぞ。