不定期でゲームや雑談などの配信を行っているのですが、近年ゲームの要求スペックが向上し、配信のFPSが安定しない事が増えてきました。これまではチューニングすることで誤魔化していましたが、最近では限界を感じ始めた為、パソコン周りの環境整理を兼ねて、配信環境の大幅な更新を行いました。
新たな配信環境を作るにあたっての一番の目標は、配信の安定化及びゲームの動作安定化です。
- 配信の安定化とは、FPSや映像の乱れなどを起こさずに映像を配信すること
- ゲームの動作安定化とは、ゲームをプレイする際にFPSなどの低下が発生せず、プレイヤーである自分がストレス無く遊べること
これら2つの達成を目標とします。
1PCから2PCへ
前述した2つの目標を達成する為に、どうすれば良いのかを考えました。単にGPUを新しいものへと買い替えてCPUを新しくすれば終わる話ですが、それができるほど金銭的余裕はありません。今ある環境で最適かつ最高のものを考える必要があります。
それで導き出された結論は、「1PCから2PCへ環境を変更する」です。
前提知識として1PCと2PCの説明が必要かと思いますので、下記にまとめます。
1PCとは
1PCは1台のパソコンで配信を全て行う事を指します。これは多くの配信者にとってのスタンダードです。1台のパソコンにゲーム、エンコード、配信などの環境をやることができます。
1PCのメリットは、1台のパソコンで全てが完結する為、余計なことを考える必要がなく、1台の強いパソコンがあればいいという点です。
2PCとは
2PCは2台のパソコンで配信を分業して行うことを指します。有名な配信者・ストリーマーはこれでやっていることがあります。1台で配信に写すゲームなどをやりながら、もう1台は配信のエンコードのみを行うというやり方です。
2PCのメリットは、配信を別のPCに任せるので、配信が安定する点です。配信がゲームであれば、ゲームにGPUの処理を全振りできる利点もあります。
2PCの構成
2PC構成にするにあたって一番重要な点が、どうやって映像と音声をやり取りするかです。
今回は、Network Device Interface(以下、NDIとします)と呼ばれる技術を選択しました。NDIとは、NewTek社が開発したIPを利用した低遅延かつ高品質な映像伝送技術です。細かい技術的な説明は、難しいので省きます。詳細は自分で調べてください。
今回、NDIを使うにあたって必要なものですが、安定した高速なネットワークさえあれば大丈夫です。NDI自体は、回線が安定していないくても使えなくはないものですが、配信の安定化を目標としているのでネットワークが安定して高速である必要があります。
2PCのスペックもここで記しておきます。
PC1(ゲームPC)
OS - Windows 10
CPU - Ryzen 5 2600X
GPU - Nvidia GeForce GTX 1050 Ti
メモリ - 32GB
PC2(配信PC)
OS - Linux Mint
CPU - Intel Core i7-6700HQ @ 2.60GHz
GPU - Intel HD Graphics 530 / Nvidia GeForce GTX 950M
メモリ- 8GB
配信ソフトウェア - OBS Studio
NDIをOBSで使う
NDIを使うのは良いけど、どうやって使うのさ。っていう問題があるわけですが、簡単に使う方法があります。OBSプラグインの「obs-ndi」を使用します。これはOBSを2つ使い、片方のOBSの映像・音声をもう片方のOBSへNDIを使って送信するものです。
OBSにプラグインを導入する
前提としてOBSはインストールされている状態です。されていない場合は、インストールしておいてください。
プラグインをGitHubからダウンロードしてください。
Releases · Palakis/obs-ndi
自分と対応するOSのファイルをダウンロードしてインストールしてください。
Windowsの場合は、Windows-Installer.exeを使えば全てやってくれるので、終わります。
私の環境はLinux Mintなので、debをダウンロードします。Debian系の場合、libndiもインストールが必要なので、libndi4_4.5.1-1_amd64.debとobs-ndi_4.9.1-1_amd64.debの2つをインストールします。
obs-ndiの設定
obs-ndiの設定は、送信側・受信側の両方で行う必要があります。
送信側

obsを起動して、ツール -> NDI Output settings を開く。

Main Outputのチェックマークを入れて、Main Output nameを何か設定する。お好きな名前を設定すればいいですが、パソコンを識別できる名前をおすすめします。
受信側
シーンにNDI Sourceを追加する。

Source nameで送信側で設定した名前を選択する。
Bandwidthは、Highestを選択してください。回線が細くて安定しない場合は、Lowestを選択してください。音声だけで良ければ、Audio onlyで構いません。
その他は、都度設定を変更してください。
映像と音声を送信する
実際に映像を送信してみます。

送信側PCのOBSでキャプチャするウィンドウやゲームなどをシーンに追加してみてください。

送信側PCでOBSにシーンを追加するだけで、受信側PCに映像が届いていることが確認できます。
配信をする場合、受信側PCで配信を開始すれば大丈夫です。
目標は達成した
NDIを活用した2PC構成で配信をしてみて、相当快適でした。近年のゲームの要求スペックはすごい勢いで上がっています。少しでも良い画質、良いFPSでプレイするにはGTX 1050Tiは貧弱なので、2PCを選択したのは良かったです。
配信PCは、GeForce GTX 950Mですが、1080p 60fpsで配信が余裕でいけます。相当異常な負荷がかかる状況になったりしなければ、当分はこれで配信楽しくやっていけそうです。
ちなみにNDIですが、結構色々できます。スマホのカメラ映像をNDIで送信してOBSに取り込んだりもできるので、使い方次第ではもっと色々なことができそうです。LANケーブルさえあれば、導入できるのは相当強みですね。