2020年11月27日金曜日

ビデオ会議やWebセミナーで、撮影済みの動画を映しながら外出先から参加する方法

緒言

昨今、コロナ禍において様々な会議やセミナーがWeb上で開かれている。
社会人たるもの、こうした自分のミーティングに出席するのは当然の義務であるが、人間誰しも止むに止まれぬ事情が入り、出られないこともあり得る。

今回はそういった緊急事態において、Webミーティングで自分自身の動画をループ再生しつつ、外出先からミーティングを低遅延で視聴し、緊急時には発言でき、ミーティング内容を録画しておく方法を紹介する。

用意するもの

・自身の撮影済み動画
VLC

方法

①スーツ姿の自分自身を撮影した1分間程度の動画を用意し、自宅PCでOBSを立ち上げ、ループ再生し仮想カメラでWeb会議ソフトに流す。(OBS Studio Ver26.0でVirtualCamを使う方法(Zip版)を参照)
②外出先から視聴する際は、nginx(OBS用カスタマイズ版) を立ち上げ、配信用にもう一つOBSを多重起動し、会議画面を録画しながらRTMPでnginxに配信し、スマホやタブレットからVLCを使って視聴する。
(VLCのネットワークストリームから"rtmp://自宅PCアドレス:ポート/live/livekey"にアクセス)
③発言する際は、MicrosoftのRDPクライアントでPC上のWeb会議ソフトを遠隔操作し、発言を行う。

注意点

外出先からセミナー視聴と遠隔操作による発言を行うため、OBSでRTMPで配信するUDPポートと、RDPで遠隔操作するためのTCPポートを開放しておく(ルータのポートマッピングとPCのファイヤーウォールを設定しておく)。
ポートを変更する場合は、上記nginxのnginx.confファイルを開きrtmpServerのListenポートを変更し、OBSでの配信ポートとnginxのListenポートを合わせておく。
長時間の外出の際、万一自宅のIPアドレスが変わっても対応できるようにDDNSに登録しDiceで自動更新するよう設定する。それと自宅PCのIPアドレスもスマホに控えておく。(とにかくRDPでの遠隔操作だけはできるように環境を整えておく)
RDPで遠隔操作後はRDPセッションを切断するとOBS配信も途絶えるため、繋ぎっぱなしにしておく。(VLC視聴用スマホとは別に、タブレットがあると良い)
RDPで入り直した後はWebexの場合、一旦音声が入らなくなるので「音声に接続をクリック→コンピュータ通話を使用」する。
OBSで配信するときのビットレートは、スマホからの視聴を考えると映像で1700kbps、音声で96kbps程度が目安だと思われる。

自宅PC側でミーティングに自身の撮影済み映像を流すとき、ZoomではOBSの仮想カメラが使えたが、WebexではデスクトップアプリでOBSの仮想カメラが使えなかった為、ブラウザーから会議に参加しOBSの仮想カメラを使う。(ブラウザからは使える)

録画はくれぐれも参加者の許可を得てから行うこと。自身のスマホへの配信においても上記手順ではセキュリティー上非常に脆弱なので(本来VPNで自宅内LANに接続し視聴する等の策を講じなければならない)、機密内容を含むミーティングで決して使わないこと。

考察

本来であればスマホからRDPを使って視聴できれば楽で、これに越したことはないのだがプロトコルの仕様上、動画の閲覧に適してないのでカクついてしまう。
また、PC側で自身の映像を流し、視聴はスマホから行っても良いのだが、それだと会議に音声と映像で2つ自分のアカウントが存在し不自然になる。
これらを解決するため、OBSで会議のウィンドウをキャプチャして配信し、その際RTMPを使うことでラグを最小限に抑え(実測4秒程度)、なおかつRDPで繋いでおくことで、緊急時には発言できるようにする。(発言の際には映像と音声が食い違うことになるが、回線の調子が悪いなどうまく言い訳をする)
 

参考

ビデオ会議やオンライン飲み会で、カメラにしれっと撮影済み動画を映す方法(OBSでループ再生しながらWeb会議ソフトに流す方法はこちらに)
 
OBS Studio Ver26.0でVirtualCamを使う方法(Zip版)
https://note.com/shitaper/n/n0e5154f6d786

OBSを独自ストリーミングする方法
 
追記
ここまで書いておきながらなんだが、ノートPCがあればスマホでテザリングしながらノートPCでOBSの仮想カメラで自身のループ動画を流し、会議の参加もそちらからすれば良かった。