今回はOBSとそのプラグインであるDistroAVを用いたNDIによる2PC間での映像と音声を共有する際の設定について備忘録として記載する。
特に自分の環境特有と思われる映像のカクツキ、音声の途切れが発生したため、この現象の解決方法についても記載する。
【検索用】OBS、NDI、DistroAV、映像、音声、カクツキ、カクカク、途切れ、Stutter
1.導入
OBSについてはインストールするだけなので割愛
DistroAV(旧OBS-NDI)は下記のアドレスから最新版(2025/5/10現在Ver6.0.0)をダウンロードし、OBSを起動していない状態でインストールを行う。また、NDI Runtimeも最新版(2025/5/10現在Ver6.1.1.0)をダウンロードし、インストールする。
ここまでの作業については、ほかの記事の方が詳しいため詳細は割愛
インストールは映像を送るメインPC、映像を受け取るサブPCの2台に行う。特に理由がなければどちらもOBS、DistroAVともに最新版をインストールする。
2.設定
メインPCにてOBSを起動し、上部のタブの"ツール"→"DistroAV NDI🄬 Settings"を選択
"Main Output"の左にあるチェックボックスをチェック状態に変更、"Main Output name"に好きな文字列(例:MainPC-OBS)を入力する。"Tally"の欄のチェックボックスは"Program""Preview"共に外す。変更したら"OK"を押してウインドウを閉じる。(OBSは起動したまま)
次にサブPCにてOBSを起動し、下部のドックの"ソース"にある追加ボタン(+)→"NDI🄬 Source"を選択
"ソース"の最上部にNDI🄬 Sourceが追加される。そのままプロパティが開かれるので設定を行う。
"Source name"は下矢印を選択するとメインPCの名前と丸かっこに囲われた先ほどメインPCにて設定した"Main Output name"が選択できる。
"Behavior"は"Pause~"を選択
"Bandwidth"はHighestを選択(Lowestを選択すると低画質に、Audio Onlyを選択すると音声のみメインPCから共有される)
"Audio/Video Sync"はNetworkを選択
下の3つのチェックボックスはすべて外す。
以上の設定を行ったら"OK"を押してプロパティを閉じる。
次にメインPCに戻り、下部のドックの"ソース"にある追加ボタン(+)から好きな項目を追加する。追加したソースを好きな位置に移動させる。するとサブPCのOBSのプレビュー画面内にもメインPCのOBSの画面が映し出されているはずである。
ここまでで本来はすべての設定は終了し、残りはメインPCからの映像のサブPCのOBSにおける配置の調整やその他のソースの追加などを行えばよいはずである。
3.問題発生
ちなみに私の環境は以下の通りである。
メインPC:GALLERIA XA7C-R47T
プロセッサ:13th Gen Intel(R) Core(TM) i7-13700F 2.10 GHz
実装 RAM:32.0 GB
グラフィックボード:NVIDIA GeForce RTX4070Ti
サブPC:MINISFORUM NAB9
プロセッサ:12th Gen Intel(R) Core(TM) i9-12900HK 2.50 GHz
実装 RAM:32.0 GB
グラフィックボード:オンボードグラフィック
メインPCはゲームのみ行う環境とし、サブPCにてDiscordによる通話・画面共有、ChromeによるYoutubeの視聴・攻略情報の検索などを行う環境としている。そのため、サブPCにて配信も行う方がスマートであるため、メインPCのゲーム映像をサブPCに共有するためにOBSとNDIを使用することを考え、導入を行った。
しかしながら、2項までの設定ではサブPCのOBSに映されたゲーム映像にカクツキが発生し、同時に音が途切れる現象が発生した。カクツキは60fpsが30fpsになっているというものではなく「動く」と「止まる」が不規則に発生し、ゲーム映像として見れたものではない状態となっていた。
3-1.スイッチングハブの導入
上記の現象を解決するために検索したところ、メインPCとサブPCを同一ローカルネットワーク内につなぐ際にルーターの背面のポートにつなぐのではなくスイッチングハブに接続したほうが良いとの記事を見つけたため、Amazonにて下記のスイッチングハブを購入、メインPCとサブPCとルーターからのLANケーブルをこちらに接続した。
結果:変化なし
スイッチングハブに変更するもカクツキに変化はなかった。
3-2.ネットワークアダプターのプロパティの変更
次に検索でヒットした記事ではネットワークアダプターのプロパティから設定を変更するといったものであった。
https://rental.pandastudio.tv/blog/ndi_nc1/
記事内には設定方法が載っていないため後述する。
タスクバーのウインドウズマークを右クリックし、設定を選択。設定の左のメニューから"ネットワークとインターネット"を選択。右のメニューから"ネットワークの詳細設定"を選択。次に"ハードウェアと接続のプロパティ"を選択。するとパソコンに備え付けられているLANポート、Wi-Fiの名前やMACアドレスなどが記載された一覧が表示される。この中からローカルネットワークに接続しているポートの名前を探す。その名前の下の説明(例:Realtek Gaming 2.5GbE Family Controller、Intel(R) Ethernet Controller I226-V #2など)を覚える。
続いてタスクバーのウインドウズマークを右クリックし、デバイスマネージャーを選択。"ネットワークアダプター"の左の矢印をクリックし展開する。次に先ほど覚えたポートの説明と同じ項目を探す。同じ項目があればそれを右クリックし、プロパティを選択。上部のタブの"詳細設定"を選択。"プロパティ"と"値"の項目を下記の通りに設定する。
"Flow Control":Rx & Tx Enabled
"Jumbo Packet":Disabled
"Speed & Duplex":2.5Gbps Full Duplex
ただし、"Speed & Duplex"は1.0Gbps Full Duplexなどでもよい。重要なのはポートの通信速度と同じになっていること、Full Duplexとなっていること。
結果:少し改善
カクツキが発生し、音が出ない時間が半分、正常に映像と音が出る時間が半分といった具合になった。
3-3.インターネットから分離
ChromeによりYoutubeの視聴やDiscordによる通話をしているときの方がカクツキが発生しやすいことに気づいたため、それらのアプリの停止を行ったところカクツキが改善した。そこでさらにネットワークの負荷を下げるため3-1項に記載したスイッチングハブからルーターに伸びているLANを切り離した。
結果:改善
カクツキがなくなり、正常に映像と音が出た。
しかしながら、インターネットから分離したため本来やりたいこと(画面共有、配信)ができなくなるため、解決策としては採用できない。
3-4.NDI Toolsの導入
NDIを使うためにDistroAVを導入したがそもそものツールを理解しなければ解決しなさそうな状態となってしまったためNDI Toolsと呼ばれるNDIを開発している組織が提供している公式ツールを使用する。
下記のアドレスからNDI Toolsをダウンロードしインストールする。
インストールするとNDI Toolsが起動し、大きなアイコンが8つ表示される。
"Webcam"を起動すると指定したデバイスから送信された映像を表示することができる。メインPCのOBSからの映像も取得できた。
"Studio Monitor"を起動すると"Webcam"とほぼ同様のことができるが、こちらはウインドウサイズを変えたり、音量の調整などメニューが用意されている。
以上のようにNDIを用いて共有された映像を表示するツールや設定ツールなどがある。
ここで設定するためのツールとして"Access Manager"がある。
"Access Manager"を起動するとユーザアカウント制御としてWindowsから警告が出る。「はい」を選択すると"Access Manager"が起動する。"Access Manager"には"Groups"、"External Sources"、"Advanced"の3つのタブがある。このうち"External Sources"にはメインPCのIPアドレスを設定する。"IP Address"の右の+マークをクリックすると設定ウインドウが表示される。"Type"はNDI、"Device IP Address"にメインPCのIPアドレスを入力し、"OK"を押すとメインPCが送信ソースとして登録される。次に"Advanced"では詳細設定を行う。"Receive"をクリックすると"Receive Mode"というメニューが表示されるためこれを"Single-TCP"に変更する。"Network Mapping"をクリックすると"Preferred NIC"というメニューが表示されるためこの左のチェックボックスにチェックを入れ、右の矢印から使用するLANポートの名前を選択する。以上の設定を行ったら"OK"をクリックする。
結果:改善
カクツキがなくなり、正常に映像と音が出た。
ChromeでYoutubeの動画を再生しながらやDiscordで通話・画面共有しながらでも正常に映像と音が出続けたため設定が正しいと思われる。
4.結論
今回発生した問題を検索した結果、一般的に発生している問題ではなく、私の環境だけ、もしくは限られたごく一部の人にのみ発生しているようであるため、具体的な解決策を記載している記事を見つけることができなかったが最終的には公式の出しているツールを使用して解決するという至極当然の結果に落ち着いた。同様の事象が発生した人の手助けになれば幸いである。
5.備考
上記の解決策を見つけた後Twitter(自称X)にて検索したところIntelのイーサネットコントローラI226Vというものが悪さをしている可能性があるというつぶやきを見つけた。はてI226V...見たことあるな?ということでイーサネットコントローラが悪さをして設定を変更しないと正常にNDIの信号を受け取れなかった可能性があると思われる。