NDI を使用した 2PC 配信環境の構築
不定期でゲームや雑談などの配信を行っているのですが、近年ゲームの要求スペックが向上し、配信の 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 からダウンロードしてください。
自分と対応する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 ケーブルさえあれば、導入できるのは相当強みですね。