配信

まだ手元のパソコンでイベント配信してるんですか?クラウド上でTeamsを利用してOBSで配信した方が楽ですよ。

はじめに

まだ手元のパソコンでイベント配信してるんですか?クラウド上でTeamsを利用してOBSで配信した方が楽ですよ。
配信のために高いパソコンや配信機材を買ったり、一人で頑張る必要が無くなります。
また。自宅のネットワーク環境を気にする必要がありません。

これまで手元のパソコンでイベント配信を運用してきて下記のような問題が発生しています。

  • 配信するスタッフの確保問題(ほぼ趣味)
  • 同等の環境を冗長することが難しい
  • そのため当日の交代が出来ない

イベント運用側としては頭の痛い問題です。
要は手離れができないです。

これらを解決する方法としてクラウド上のIaaSを利用しスタッフ共同運用を行えば解決できると考えています。
配信している方の一部には、すでにクラウド上から配信を行っているケースもありました。しかしスタッフ共同で運用する場合以下が問題だと思っていました。

  • リモートデスクトップのセッションが切断されると真っ黒な画面が配信がされる問題
  • 接続できるセッションが1つに限定されるため結局一人で運用
  • 結局Zoomなどを利用していた場合、出力される画面キャプチャを監視しズレ防止が必要

これは現状いろいろ試したのですが解決できませんでした。
そこに登場したMicrosoft TeamsのNDI機能を利用した配信方法が解決してくれました。
https://level69.net/archives/27770

上記の応用編になるためTeasmの利用方法やNDI機能の説明は省きます。リンク先を参考にしてください。
今回は以下の要件を満たすように環境を構築していきたいと思います。

  • スピーカーは自宅から参加する
  • 運用するスタッフは自宅から参加する
  • スタッフは2人以上
  • リモートで共同運用する
  • リモートデスクトップでセッションが切れても問題ない

全体的な構成は以下です。

実際の配信にはOBS-webというツールを利用することでリモートから複数人での運用を可能とします。

これらを構成する方法を解説していきたいと思います。

*YoutubeやWindowsなどのセットアップなどは説明していません。各自でご確認ください。

事前準備

クラウド上というからにはクラウドを利用します。
AWSやAzure、GCPなどWindows のインスタンスを立ち上げることのできるプロバイダは多々ありますが、どこでも問題ありません。
好きなところを使ってください。

今回はAzureを例に進めていきたいと思います。
インスタンスは安定した配信を目指すならばGPUが搭載されているものをお勧めします。
OSBではエンコード処理にGPUを利用することが出来るためです。

ドライバを正しくインストールすると、Hardware(NVENC)を選択できるようになります。

各クラウドのGPUインスタンスとドライバのインストールについては下記で紹介しています。参考にしてインストールします。
https://level69.net/archives/27428

今回はNVシリーズを利用していきたいと思います。
数時間の利用なのです数百円で収まります。
停止すれば料金は発生しません。

仮想マシンを立ち上げ必要なソフトウェアをインストールしていきます。

Teams
https://www.microsoft.com/ja-jp/microsoft-365/microsoft-teams/download-app

OSB
https://obsproject.com/

OBS NDI プラグイン Teasmの映像を取得するため
https://github.com/Palakis/obs-ndi/

OBS websocket プラグイン OBS Webを利用するため
https://github.com/Palakis/obs-websocket

仮想サウンドデバイスをインストールする必要があります。
これはクラウド上特有のサウンドの問題を解決します。物理ではないのでマイクとかスピーカーとか無いですからね。

VB-CABLE Virtual Audio Device
https://vb-audio.com/Cable/index.htm

Windows版をダウンロードして解凍後、VBCABLE_Setup_x64を起動してインストールします。
再起動が必要です。

Windows Audio サービスを自動起動に設定します。

またリモートデスクトップで接続ですがリモートコンピューターで再生に設定します。

これらを事前にインストール、設定して準備は完了となります。
最低限これらの構成で配信が可能です。

シーンの作成

必要なソフトウェアをインストールしたらあとは通常の配信と同じです。
シーンの作成を行っていきます。

詳しい作成には下記の記事を参考してください。
https://level69.net/archives/27770

最初にNDIを有効にしてTeamsを起動します。

起動したTeamsのデバイスはVB-CABLE Virtual Audio Deviceを選択します。
カメラはOBSのバーチャルカメラで問題ありません(利用しません)。

OBSではNDI Sourceを利用してTeamsの画面を抜き出し構成します。

今回は試しに2つ作成しています。

Youtubeのストリームキーの設定なども事前に行っておきます。
これで配信元の準備は完了です。

OBS-web

手元のマシンでブラウザベースでリモートでOBSを制御するツールです。
複数人で制御も行えるので運用者の冗長もできる便利なツールです。

本体はここにあります。
https://github.com/Niek/obs-web

通常は下記にアクセスして利用するのが良いと思います。
http://obs-web.niek.tv/

重要なのはAzureのネットワークセキュリティグループでOBS Websocketで利用しているポート4444(デフォルト)を開放します。
他のクラウドでも同様にポートを開放します。ソースIPぐらいは絞って設定しましょう。
また、Windowsのファイアウォールの設定も行う必要があることにも注意します。

対象の仮想マシンにアクセスします。IPアドレス:ポートを入力して接続します。

上部のボダンで配信をスタートさせます。
あとはシーン切り替えの画面が表示されるので実際にシーンの切り替えが行えているか確認すると良いでしょう。

ライブを見て、実際に切り替わっているか音声が取れているか確認しましょう。またリモートデスクトップを切断しても配信が行われるか確認ましょう。(画像じゃわかり難いですね)

以上でクラウド上からの配信設定を説明しました。
たぶんこれで全ての要件を満たすことが出来るはずです。

まとめ

今回はあくまでも最低限のツールを利用しての一例設定です。そして全体的な設定の流れを解説しました。詳しい使い方は各自調べてください。
他のツールを導入することで様々なシーンにあった配信をクラウド上から行えるようになると思います。NDIさまさまです。
TeamsのNDI機能をどんどん利用してもらえたら、もっと機能が増えると思うので使ってもらえると嬉しいです。

-配信
-,