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

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 からダウンロードしてください。

Releases · Palakis/obs-ndi

自分と対応するOSのファイルをダウンロードしてインストールしてください。

Windows の場合は、Windows-Installer.exe を使えば全てやってくれるので、終わります。

私の環境は Linux Mint なので、 deb をダウンロードします。Debian 系の場合、libndi もインストールが必要なので、libndi4_4.5.1-1_amd64.debobs-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 ケーブルさえあれば、導入できるのは相当強みですね。