Engineering

OBSの映像をNDI HXで出力する方法

はじめに

自宅などでNDIを使ってる時ってWiFi環境で受信したい時ってあるじゃないですか。
OBSの映像をNDIで出力する時には大抵の場合、DistroAVのNDIプラグインを使うと思います。

しかし、このプラグインで出力されるのは 「Full NDI」
さすがに150Mbpsとか普通に食うので帯域が大きすぎてWiFi環境ではちといまいち。

そこで、もっと帯域を抑えられる 「NDI HX」 を使いたいわけですが、残念ながら現在のDistroAVには、直接NDI HXで出力する機能がないんですよね。
ライセンス周りの問題があるらしいです。(詳しくは調べてません)

諦めるしかないかなと思ったんですが、解決策がありました。
今回は、公式ツールを組み合わせてOBSの映像をNDI HX化する方法を試してみたので、その記録を残しておきます。


使うのは公式の「NDI Bridge」

結論から言うと、OBSから直接出すのは諦めて、

「同じPC内で変換させる」

という力技で解決します。

使うのは、NDIの公式サイトで無料配布されている NDI Tools に含まれる 「NDI Bridge」 というソフト。これを使ってローカルで変換してしまおうという作戦です。

※OBSには、すでにNDIプラグイン(DistroAV)が入っている前提で進めます。


手順1:まずは普通にOBSからNDIを出す

とりあえず、OBSの映像をネットワークに流さないと始まりません。 この時点ではまだ帯域バカ食いの「Full NDI」です。

OBSのメニューから [ツール][NDI Output Settings] を開いて、サクッと設定します。

  • [Main Output] にチェックを入れる
  • 適当な名前を付ける(例:OBS-Master)

これでOK。

OBSのNDI Output設定画面


手順2:NDI BridgeでHX化する

同じPCで NDI Bridge を立ち上げて、OBSから出ている信号をリアルタイムでHXに変換させます。

NDI Bridgeを起動したら、こんな感じで設定しました。

  1. 上のタブで [Local] を選ぶ
  2. Settings and Diagnostics > Encoder Settings をいじる  
    • Output: NDI HX を選ぶ。
    • Encoder: 「HEVC (H.265)」か「H.264」を選ぶ。
    • Quality: まあ「Medium」くらいで十分かなと。
  3. Bridge Name: に適当な名前を付ける(例:HX-Bridge)
  4. [Start] を押して変換を開始する

Groups to ShareとLocal Send Groupsは特にいじらなくてOKです。(Use Access Maneger GroupをONにしてればいじれない)

NDI Bridgeの設定画面

これで、ネットワーク上には

  • 元のドデカいソース:OBS-Master
  • Bridgeで変換されたHXのソース

の2つが流れることになります。


手順3:実際に帯域を確認してみる

別のPCから、変換されたソースを受信して確認してみました。 NDI Studio Monitor で見てみると、ちゃんとBridge経由のソースが見えています。

肝心の帯域ですが、

  • 変換前:約150Mbps
  • 変換後:約8〜10Mbps

と、劇的にダイエット成功。これならWiFiでも全然いけそうです。


おわりに

OBSとプラグインだけではできないのは変わりないので若干タイトル詐欺ですが、まぁそこはご愛敬ということで。
ネットワーク帯域に余裕がない環境では使えるテクニックだと思うので、覚えておいて損はないかなと。