TeamsやZoomを使ってリモートUTやリモートインタビューを実施することも増えているご時世かと思います。こうしたオンライン会議ツールはボタンひとつで録画が行われるのも便利な部分ですが、UTに使うににはやや難点あります。それは複数の画面ストリーム(UTだと、参加者カメラ、モデレーターカメラ、画面共有など)を1つの録画映像としてレイアウトする時の自由度の低さです。UTでは画面共有がメインで大きくみたいことがほとんどだと思いますが、そこの制御が自動まかせで意図通りにいかないことがあります。3ストリームが単純2×2の四分割とかになると、無駄に顔が大きく映っていて、共有画面が小さく文字が読めない、しかも1/4は真っ黒で無駄、みたいな。Zoomだといくつかのパターンから選べるみたいですが、これもやっぱり制約は残ります。画面の右上が重要だから話者は左下に置きたい、とか。こうしたレイアウトはサーバー側で組まれた状態で配信されるので、クライアント側ではどうしようもないと思っていました。
しかし、TeamsでNDI出力という機能を使うと、参加者毎、画面共有、アクティブスピーカー(自動切り替え)といったストリームを個別に取り出せ、しかもOBS Studioのプラグインを使えば独立のソースとして扱えるということがわかりました。OBS上で独立ソースとして受けられるのであれば、レイアウトは好きに組み放題で、それを録画したり別のサービスに配信したりも可能です。またこれらの映像/音声はネットワークを経由した伝送になるので、TeamsクライアントとなるPCとOBS Studioで録画/配信を行うPCを分けることができ負荷分散させることもできます。
ということで早速テストしてみました。
Teamsの映像/音声を外部送信するのはプライバシー的な問題もあって許可設定が多段になっていているので順を追って説明します。
■Teams管理者画面でNDI出力を許可する
はい、いきなりこれが一番大きな壁です。大元のところでNDIを許可する必要があります。私は個人契約なのでホイっとONにするだけですが、企業アカウントとかだと管理者に事情を説明してONにしてもらうのが大変かも知れません。頑張ってください。全員まとめてON/OFFではなく会議ポリシーというのを複数作成してわけることができるので、きちんと設定すればリスクは最低限にできるはずです。
参考までに「Teams管理センター」(Web)の画面を貼っておきます「会議ポリシー」を開くと、作成済みのポリシーセット一覧画面になるので、許可したいポリシーセットを選びます。私は個人なので「グローバル(組織全体の規定値)」を選んで丸ごと許可してしまいました。「NDIストリーミングを許可する」を「オン」にします。以下の第二、第三の壁があるので、意図せず会議が盗聴されるようなリスクはほぼないんじゃないかなと思います。
■Teamsクライアントアプリ上で有効化する
次がTeamsアプリ上での許可です(ブラウザやモバイルアプリではできません)。「アプリのアクセス許可」を開くと「ネットワークデバイスインターフェイス(NDI)」という項目があるので有効化します。
これはトラップがあって、「Teamsアプリを起動する度にオフに戻る」仕様となっています。うっかり有効化したままにならないようにとの配慮なんでしょうが、忘れがちなので↓の操作ができなかったらここを再確認してみてください。
■会議ごとの開始操作
最後に会議中の開始操作が必要です。三点メニューから「NDIで送信」を選びます(止める時も同じところから)。
ここまでしてようやくネットワーク上にNDIフォーマットでのポートが開くことになります。
■OBS Studioで受信する
NDIはNewTek社が策定した規格なので、準拠している製品からなら送信や受信ができます。ここでは無料ツールのOBS StudioをTeamsと同一PC上で起動してテストします。
OBS Studioの基本操作はこちらの記事などを参考にしてください。
OBS Studio単体ではまだNDIに対応しておらず、別途こちらのプラグインをインストールします。Releaseページからお使いのOSにあわせたインストーラーをダウンロードしインストールします(Windows版は再起動が必要でした)。
インストール後にOBSを起動すると、ソース一覧に「NDI Source」が出現するはずです。こちらを追加してやるとプロパティ画面が開き、「Source name」プルダウンメニューにTeams会議上の参加者別のストリームが現れます。
この例だと「ローカル」が同一PC上のカメラ画像、「古田一義」がスマホから参加したカメラ画像、「共有画面」はその名の通り共有画面で、「アクティブなスピーカー」は今しゃべっている人のカメラ画像に自動で切り替わるストリームだと思います。
必要な数宇だけ「NDI Stream」ソースを追加し、ここでそれぞれのストリームを選んでやるだけです。
ちなみにTeamsはネットワーク速度にあわせて解像度を変化させていまうので、それに追随させずに大きさを固定にする方法はこちらの記事が参考になります(「余談」のすぐ上の辺り)。
「アクティブなスピーカー」をソースにする場合も設定しておくのが良いかも知れません(スマホ参加者だと縦長になったり)。
■まとめ
今まで名前くらいしか知らなかったNDIという規格ですが、色々と使い道がありそうです。Teamsから個別のストリームが取り出せるならば、インタビューをTeamsで実施しつつ、OBSで特定の画面だけ取り出したり自在にレイアウトをした映像を見学者向けにZoomで配信したりとかもできます。
またスマホのカメラ映像をNDI出力するアプリを使えば、OBSのソースに直接取りこめるので、なんらかのツールでいちどPCの画面に映したものをOBSでウインドウキャプチャする、みたいなことをしなくて済むようになり、画面の使用効率を良くなるしおそらく負荷的にも軽くなるんじゃないかと期待されます。そうしたアプリとしてはNDI HX CameraがiOS、Androidともにあります。
iOS版がちと良いお値段しますが、憶えておいて機会ができたら試してみようと思います。
他にもHDMI入力をNDI出力したり、その逆をするハードウェア製品も存在するようで、思索が広がります。
ちなみにATEM Miniシリーズで有名なBlackmagic Design社からも似たようなネットワーク映像/音声ストリーム->HDMI変換装置Streaming Bridgeが出ていますが、NDIとは互換性がないようです。どちらかといえばRTMP勢で、ATEM MiniやOBSからの配信を受けてHDMIでモニターに映すなどするものと思っておけばよさそう。NDIはローカルネットワークでのやりとりに使うものですが、RTMPならインターネット経由でも使えるので、用途で使い分ける感じですね。こちらも機会があれば試してみたいものです。
【国内正規品】Blackmagic Design ビデオコンバーター ATEM Streaming Bridge SWATEMMINISBPR