メインコンテンツまでスキップ

NDIを使用した2PC配信環境の構築

snake

不定期でゲームや雑談などの配信を行っているのですが、近年ゲームの要求スペックが向上し、配信の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ケーブルさえあれば、導入できるのは相当強みですね。