Hothotレビュー

ゲーム生配信後に編集動画をアップしている人待望のOBSプラグイン「Source Record」

~ワイプやゲーム画面を配信時にフルサイズで同時記録

 多くの人がゲーム生配信を行なうようになった昨今、生配信だけでなく、その映像を後で編集してYouTubeなどにアップロードしている人もいる。そんなとき、ゲーム画面の上に重ねたワイプが邪魔だったり、ワイプでの自分のリアクションを拡大表示したら映像がぼやけてしまう、といったことに悩んでる人も少なくないのではないだろうか? そういった、生配信後の編集の可能性を大きく広げてくれる「OBS Studio」用プラグインが5月に公開された。本稿ではその使い方を解説していく。

配信のオーバーレイ要素を個別に同時録画できる「Source Record」

 ゲーム配信で顔出しもしている場合、配信レイアウトは

  • (a)ゲームはほぼ全画面で表示し、そのどこかに縮小したカメラ映像を表示
  • (b)ゲーム画面をやや縮小させ、その脇などに縮小したカメラ映像を表示

のどちらかがほとんどだろう。

aのパターン
bのパターン

 生配信は、どちらでも好きなスタイルで行なえば良いのだが、その配信動画を元に、後から編集した動画を作成するとき、ちょっとした問題が出ることがある。それは、ワイプの映像をフルスクリーン表示する場合だ。例えば、おもしろいリアクションを取ったときに、ワイプだけをフルスクリーンに拡大して、テロップをつけて……、といった編集はよくある。しかし、いったんワイプ向けに縮小したものを拡大すると、解像度が足りずぼやけてしまう。また、aの場合は、ゲーム画面上に常にワイプが出ているので、ゲーム画面だけを切り出すことができない問題もある。

ワイプを無理やり引き伸ばすと、ぼやけた映像となる

 そういう問題を解決してくれるのが、今回紹介する「Source Record」というOBS用のプラグインだ。このプラグインを使うと、配信上は縮小表示しているワイプや、ワイプの背後に写っているゲーム画面などを、オリジナル解像度のまま個別に同時録画できるようになる。つまり、ワイプは元のフルHDなどの解像度のままで、ゲーム画面は上にワイプやロゴなどが重なっていない状態で録画されるということだ。これは後編集をしてるユーザーにとっては、かなり画期的だ。

 また、配信時はゲームや自分の声、ボイスチャットなどの音声が混じって記録されるが、OBSの標準機能である音声のマルチトラックレコード機能を活用すると、これらを別々のトラックに分けて保存しておいて、編集動画では、BGMだけを上げ下げしたり、ボイスチャットだけをなくしたりということもできるようになる。

Source Recordの導入と設定内容

 Source Recordはこちらのサイトで配布されており、Mac、Linux、Windows版が用意されているので、「Download」ボタンを押してダウンロードする。Windows用はインストーラー版があるので、これを利用しよう。

 インストール後にOBSを起動して、ワイプやゲーム画面など、オリジナルを記録したいソースの「フィルタ」を開いて、「+」を押し、「Source Record」を選択すると、そのソースがオリジナル解像度で記録されるようになる。

オリジナルを記録したいソースの「フィルタ」を開いて、「+」を押し、「Source Record」を選択する

 ただし、色々と設定があるので順に解説しよう。フィルタにSource Recordを追加すると、右ペインに多くの設定が表示される。「Record」枠の「Record Mode」は、いつソースの録画を開始するかを指定する。選択可能な内容は、「None」(実行しない)、「Always」(常時)、「Streaming」(配信開始時)、「Recording」(録画開始時)、「Streaming or Recording」(配信開始か録画開始時)となっている。

 「Path」ではそのソースを記録するフォルダを指定する。「Filename Formatting」では、ソースの録画に付けるファイル名の形式を指定できる。デフォルト値は「%CCYY-%MM-%DD %hh-%mm-%ss」となっており、この場合、2021-09-11 16-35-01.mp4といったように録画を開始した日付と時間がファイル名となる。記録するソースが1つの場合はこのままでもいいが、ワイプとゲームなど複数のソースを同時に録画する場合は、ワイプ用に「Camera_%CCYY-%MM-%DD %hh-%mm-%ss」、ゲーム画面用に「Game_%CCYY-%MM-%DD %hh-%mm-%ss」などのように指定し、ファイル名が違うものになるようにする必要がある。

 「Rec Format」は動画の記録形式だ。mp4が見慣れて扱いやすいかと思うが、mp4は録画時にOBSやOSが落ちると、データがまったく記録されないという性質がある。そのリスクを避けたい場合は、flvにしておくと、落ちた箇所まではデータが残るが、flvはPremiere Pro CC 7.1以降で読み込みがサポートされなくなった。扱いやすさを取るか、安心を取るかで選ぼう。

Record枠で記録に関する設定を行なう

 「Replay Buffer」枠にチェックを入れると、常にそのソースをインスタントリプレイ用に「Duration」で設定した秒数分だけ別に記録する。インスタントリプレイをうまく活用すると生配信でおもしろい演出ができるが、この機能自体はOBSが標準で持っているので、Source Recordで使う必要はないのではと思う。

 「Stream」枠を使うと、そのソースを本配信とは別にストリーミングできるが、個人で単独配信するときに使うことはほぼないだろう。

 「Different Audio」枠にチェックを入れると、その動画ソースに対して「Source」で指定した音声ソースの音声で録画ができるようになる。これもかなりニッチな機能なのと、実はそもそもSource Recordは音声記録にややバグがあるので、この設定も使うことはほとんどなさそうだ。

 「Encoder」では、ソース録画に使うエンコーダを指定できる。また、その上で、ビットレートやCBR/VBRなど細かな設定もできる。基本的には配信で指定しているものと近しい設定にするが、録画動画は生配信ほど帯域がシビアではないので、画質重視でビットレートを生配信より上げてしまっていいだろう。

 例えばフルHD 60fpsの生配信だと9,000kbps程度が標準的だが、Source Recordでは20,000kbps程度まで引き上げておけば、FPSなど画面の書き換えが激しいゲームでもブロックノイズが出にくくなる。ただし、当然その分、ファイルサイズは大きくなる。あるいは、配信はCBR(固定ビットレート)にして、Source RecordはVBR(可変ビットレート)にするのもありだろう。

Encoder枠でエンコーダの設定を行なう

 と言うことで、一般的な配信で設定が必要となってくるのは、「Record」、「Path」、「Rec Format」、「Encoder」となる。

Source Recordの注意点

 基本的に前述の設定を行なうことで、ソースのオリジナル記録が可能となる。しかし、実際の運用面ではいくつか注意すべき点がある。

 まずは、これはSource Recordの制約ではないのだが、ゲーマーが一番利用しているGPUであるGeForceでは、エンコーダの最大同時セッション数が「3」となっている。このエンコードセッションには、ソースレコードの録画だけでなく、配信時のエンコード分も含まれる。つまり、配信しながら同時にソースを録画できるのは2つまでとなるのだ。

GeForceシリーズではエンコーダの同時セッション数が軒並み3までとなっている

 ゲーム配信しながら高品質な動画を保存したいと考えたとき、

  • (a) 配信映像
  • (b) ゲームのソース映像
  • (c) ワイプのソース映像

の3つを記録したいという人が多いだろう。aについては、配信動画のアーカイブをTwitchなりからダウンロードすることもできるが、配信プラットフォームでの再エンコードにより画質が落ちている場合がある。それがなくても、生配信では映像が途切れないよう、ビットレートは抑えめにするので、FPS系など画面の書き換えが激しいゲームは画質が低下するので、抑えめのビットレートで配信しつつ、高ビットレートでローカル録画もしておきたいという考えだ。

 しかしこれでは、セッション数が足りない。どうするのか? CPUの出番だ。

 Source Recordは、1つ1つのソースごとにエンコーダを個別に指定可能で、CPUも使える。CPUによるソフトエンコードだとCPU負荷がかなり高くなるが、AMDのAPUやIntelのほぼ全てのCPUにはハードウェアエンコーダが内蔵されており、これも利用可能だ。

 ただし、ゲーミングデスクトップPCの場合、CPU内蔵のGPUは出荷時に無効化されていることが多い。デバイスマネージャーに「Intel UHD Graphics」などのIntel GPUが見当たらない場合は、システムのUEFIを起動し、有効にする必要がある。あくまでもCPU内蔵GPUのハードウェアエンコーダを使うだけなので、HDMIケーブルなどの挿し直しなどは必要ない。

UEFIを開くには、Windows 10の「設定」→「回復」から「PCの起動をカスタマイズする」の「今すぐ再起動」を選択
「続行」をクリック
「このPC初期状態に戻す」をクリック
「UEFIファームウェアの設定」をクリック
これで再起動してUEFIの設定に入れる
この設定はメーカー(マザーボード)次第だが、Integrated Graphics Deviceを有効(Enabled)にするよう変更。Saveして終了する
これで「デバイスマネージャー」にIntel UHD Graphicsなどが表示され、ハードウェアエンコーダであるQSVを利用できるようになる

 なお、IntelとAMDのハードウェアエンコーダには、同時記録セッション数の上限は特に設けられていない。NVIDIAもGeForceとほぼ同じチップであるQuadroについてはほとんどのモデルで上限がないので、これはマーケティング的な制約のようだ。

 もう1つ重要な注意点がある。それは、OBSを管理者モードで実行することだ。管理者モードで実行しないと、なぜかSource Recordの録画のフレームレートが変わってしまい、早送りの動画になってしまう問題がある。

CPU負荷は高め

検証に利用したマウスコンピューターのG-Tune HP-Z

 Source Recordの検証を行なうにあたり、マウスコンピューターからハイエンドゲーミングPC「G-Tune HP-Z」をお借りした。主な仕様は、Core i9-11900K、メモリ32GB、NVMe SSD 1TB、HDD 4TB、GeForce RTX 3080 Tiという構成だ。

 検証では、G-Tune HP-Zで、オーバーウォッチ、ダンジョンとパズルという2つのゲームを起動し、ブラウザでYouTube動画を再生させ、OBSで4分割表示させ、全体録画と、3つのアプリのソース録画を行なってみた。つまり、4つの動画を同時記録することになる。記録設定は、NVENC、QSVともフルHD、CBR 20Mbps、高画質設定とした。

このような状態で通常の録画+Source Record 3ストリームという計4ストリームの同時録画を行なった

 今回このようなハイエンドのPCを用意したのは理由がある。というのも、Source Recordはハードウェアエンコーダを利用していても、結構CPU負荷が高まるからだ。

 まず、フィルタにSource Recordを追加した時点で録画をしていなくてもCPU負荷が上がる。今回の検証では、Source Recordを無効にし、プレビュー状態のOBSのCPU負荷は0.7%前後だったが、Source Recordを有効にしただけ(録画は行なっていない)で、2.4%程度になった。数値としては差は1.7%で大したことないように見えるが、過去、別のマシンで試した経験から言うと、差分ではなく倍率、つまりSource Recordをオンにすると、OBSのCPU負荷が3倍程度になると思っていい。

Source Record導入前のプレビュー状態のOBSの負荷は0.7%前後
Source Recordをオンにすると、録画をしていなくてもCPU負荷が約3倍の2.4%に上昇

 そして、Source Recordを使って録画をはじめると、OBSの負荷は8%程度になった。つまり、10倍になるということである。Source Recordをオンにした状態で負荷が3%程度になるマシンだと、録画時には30%程度になることを覚悟した方がいい。ちなみに、4つのストリームの同時録画について、NVENC×3+QSV×1と、QSV×4の2パターンを試したが、エンコーダの違いでCPU負荷は変化しなかった。そのため、どちらを使うかは個人の好みで良いだろう。

NVENC 3ストリーム、QSV 1ストリームで録画している時のCPU負荷は7.5~8%前後まで上がった。倍率で言うと、標準の10倍となる
こちらは、QSV 4ストリームの場合。こちらも、負荷は7.5~8%前後でエンコーダによる負荷の差はなかった

 なお、複数ストリームの同時録画では、ドライブへの書き込みが激しくなる。HDDではまずボトルネックが発生するので、SSDへ録画する必要がある。

win-capture-audioでオーディオも別トラック保存

 ということで、配信映像、ゲーム画面、ワイプなどをフル画質で保存できるようになった。ここでもう1つプラグインを利用すると、動画の後編集の幅が広がる。それが「win-capture-audio」。このプラグインを使うと、OBSでアプリごとの音声を個別に記録できるようになる。

 例えば、ゲーム音、自分のマイク音声、Discordから聞こえるフレンドの音声を別トラックとして保存しておけば、編集動画で、この場面では自分の音声あるいはフレンドの音声だけを無音にしたり、逆に大きくしたいといった際に、個別に音量を調節できるようになる。

 使い方だが、まずサイトからプラグイン(win-capture-audio-2.0.0-beta.3-setup.exe)をダウンロード、実行する。

 インストール後にOBSを起動し、OBSの「設定」を開く。ここで、「音声」タブの「デスクトップ音声」を全て「無効」にしておく。

 設定を閉じて、「ソース」タブで「+」を押し、「Application Audio Output Capture」(これがwin-capture-audio)を選択し、新規作成する。例えば今、Discordの音声トラックを作りたいなら、名称を「Discord」などとしておく。すると、ウインドウキャプチャと同じような画面が現われる。ここで、「モード」は「特定のウインドウをキャプチャ」にして「ウインドウ」で、「Discord」を選択する(起動中である必要がある)。ほかはデフォルトのままでいい。

「ソース」タブで「+」を押し、「Application Audio Output Capture」を選択し、新規作成。名前は何の音か分かりやすいように適宜変更する
キャプチャしたいアプリのウインドウを選択。これでそのアプリの音声が独立したトラックとなる

 同様に、ゲーム音についても、Application Audio Output Captureの新規作成を行ない、キャプチャするウインドウとして、そのゲームのウインドウを選択する。

 自分の音声は、すでにマイク入力が音声ミキサーにあるはずなので、これで、自分の音声、ゲーム音、ボイスチャット音声がOBSで記録可能となった。なお、これらが音声ミキサーに現われていることから分かるように、音声ミキサーのそれぞれのスライダーを使って、生配信中もユーザーに聞こえる音量を個別に調節できる。

 続いて、音声ミキサーのタブの中を右クリックして「オーディオの詳細プロパティ」を開く。デフォルトだと、右側の音声トラックが「1」と「2」しか見えていないので、ウインドウを横に広げて、「3」以降も見えるようにしよう。ここで、マイクは「1」と「2」、ゲーム音は「1」と「3」、ボイスチャット音声は「1」と「4」にのみチェックを入れる。また、全てについて「音声モニタリング」を「モニターと出力」に変えておく。そして、OBSの「設定」→「出力」→「録画」の音声トラックの「2」、「3」、「4」にもチェックを入れる。

「オーディオの詳細プロパティ」のウインドウを横に広げると、3~6のオーディオトラックも表示される。全ての音声トラックで1にチェックを入れた上で、それ以外はかぶらないよう振り分ける

 OBSのデフォルトでは、トラック1を配信に載せるようになっているので、上記のように設定することで、全ての音が配信に載る。加えて、録画映像には、全てのミックス音声(トラック1)に加えて、マイク、ゲーム、ボイスチャットがマルチトラックとして独立して録音されるようになるので、動画編集ソフトで自由に調整できるようになる。

 なお、記録した動画を編集する前提なら、録画で記録する音声トラックは1以外にしてもいいが、そうすると編集して、ステレオにダウンミックスするまでは、普通の再生ソフトでは音が聞こえなくなるので、重複するがトラック1も録画しておいた方がいいだろう。

 もう1つ注意点として、ゲーム音については、違うゲームをする度に、キャプチャウインドウを指定し直さないといけない。

ハイエンドマシンの余力を活用できるプラグイン

 と言うことで、今回はSource Recordを紹介した、バグもあったり扱いにくいところもあるが、うまく活用すれば、配信素材を使って非常に柔軟な動画編集ができるようになる。

 CPU負荷が高い点も、ミドルレンジクラスのマシンを使っている人にはおいそれと薦められないものの、今回利用したG-Tune HP-Zのようなハイエンドマシンであれば、むしろ普段有り余っている余力を十分に発揮できるようになるとも言える。配信した動画編集の幅を広げたい人にお勧めしたい。