2022.02.04
Diary
NDI 5 で追加された NDI Bridge はインターネット越しでも NDI でつなげられるようになる仕組みだけどローカル間でも帯域が足りんってときは Bridge を通して H.264 とか HEVC にトランスコードして送れるので便利。だがしかし全部 GUI アプリになってるので自動化するためには Windows UI Automation とかを使わないといけないかもしれない。めんどい。
NDI 5 で追加された NDI Bridge はインターネット越しでも NDI でつなげられるようになる仕組みだけどローカル間でも帯域が足りんってときは Bridge を通して H.264 とか HEVC にトランスコードして送れるので便利。だがしかし全部 GUI アプリになってるので自動化するためには Windows UI Automation とかを使わないといけないかもしれない。めんどい。
Unity で NDI をあつかうとなると KlakNDI を使うのがデファクトスタンダードなわけだが映像は送受信できるものの音声は非対応なのでどうしよーってなるけど探すと有志がフォークしているバージョンがあってそれを使うといちおう受信だけはできるようになる。しかし Keijiro 氏が非対応理由としてあげてるもろもろへの対応が完全にできているわけではないので NDI 直接受信しちゃうとフォーマットがあってなくて音が出ないとかなるんだけどここでも NDI Bridge をかませて NDI 4 Compatibility Mode を on にすると比較的安定する。
NDI Bridge の GUI は結局の所その後ろで実際に動くコンソールアプリのパラメータ設定パネルでしかなくってローカルでのトランスコード用の Application.Network.ProxyHX.x64.exe を適切なパラメータ付きで起動すればいいだけだった。引数解析してるひといてよかった。Unityでなぜかフレームレートが出ない問題が発生したけど原因は WebcamTexture が USB からデータを読み出すのにメインスレッド使って全部ロックしてしまってたからだった。原因はわかったけどどうすんだこれ。