ブラウザ同士で簡単に映像送信ができOBSにも取りこめるVDO.Ninja

VDO.Ninjaの情報を求めて来られた方は次の見出しまでジャンプしてください!

■屋外UTの中継をするための試行錯誤

先日、複数の場所を往復しながら実施するUTがありました。インタビュー部屋とプロダクトを触る部屋が異なる、みたいな感じ。しかも後者はWi-Fiが使えない屋外。どうにかこれらの映像をシームレスに記録と見学者への配信を行いたい、というニーズ。セッション全体の1/3、30分位の時間ですが炎天下の屋外に移動する為、バッテリーが保つこと、機器やネットワークが安定した機能することも視野に入れなければなりませんでした。

250mほどの距離で当然HDMIケーブルやLANケーブルが敷ける距離でもなく、Wi-Fiも届きません。同一ネットワーク下にないので先日紹介したNDIなども使えません。別記事で紹介したRTMPも受信拠点側をポート開放する必要があったり遅延が大きめだったりで微妙に使いにくい。すぐに思い付くのはZoomやTeamsといったオンライン会議ツールでの参加ですが、スマホのカメラは光学ズームが弱いので、物理で寄らないと手元など細かい対象を撮ることができず、ソーシャルディスタンスやラポール形成的に不利。できれば光学ズームのビデオカメラ映像を使って配信したいなと思いました。(ちなみに最近では望遠レンズを備えたスマホもありますが、Zoomなどのアプリはそれらを使えません。ピンチズームしても標準カメラの像がデジタル拡大されるのみです。Android版に至ってはピンチズーム自体できませんでした(執筆時点)。屋外なので騒音対策としてきちんとワイヤレスマイク(Wireless GO 2)を使った音声収録をしたいのですが、これら外部マイクもスマホ版アプリは制限が大きかったりします(後述)。

そんなこんなでどこにも行けない御盆休みは手持ちのRTMP配信カメラ(HXR-NX80)、GoPro Hero9、スマホ版Zoomアプリ、UMPCなど持てる機材をあーでもないこーでもないと組み合わせて試行錯誤をしておりました。

本題と関係ないですが、その試行錯誤の様子を貼っておきます。

まずは手持ちスタイル案。

手持ちスタイル案

ビデオカメラのHDMI出力をAndroidでも使えるHDMIキャプチャアダプタBU110を経由してGalaxy Note 10+に入れています。ブラケットやホルダーも含めると845gにもなりました(笑)。ビデオカメラのバッテリーは小さいものだし、スマホのUSBポートもキャプチャで塞がるので外部給電もできず、スタミナにも不安。前述の通りAndroidのZoomアプリは外部カメラやマイクを認識しないので配信系のアプリでRTMP送信するしかない点もイマイチ。

そこでモビリティは落ちるものの、安定性やスタミナ重視で組んでみた装備がこちら。

三脚+UMPC案

三脚にセリアで買った木製パンチングボードをタイアップで吊り、そこに各種装備を固定しまいた。三脚の根元にぶら下げているだけなので、足をたたんで移動することも可能。PCは手持ちラインナップでCPUパワーとサイズのバランスをとってOneMix 3 Pro。Surface Go2 (CoreM3 + LTE版)だと見た目はスッキリしますがちと配信能力に不安があったので。OneMixはLTE非搭載などで別途モバイルルーターを追加。さらにはUSB PD給電のためのモバイルバッテリー、とか詰んでいったらこれまたエラい重量になってしまいました。ドリーが欲しいところです。ただWindowsなのでZoomなどのプライベート通信サービスでも外部カメラ、外部マイクは区別なく使えるので映像、音声の品質は向上させられます。

ちなみにどちらもビデオカメラ側で録画ができるので、保存用としての品質は保持できます。あと、最近の家庭用ビデオカメラによくあるスマホ用プレビューアプリを使い、スルー画をスマホに映した状態をZoom等の画面共有で流す、という方法も検討しましたが、

  • スマホプレビュー中はビデオカメラ側の液晶が真っ黒になってしまい、撮影に支障が出る(SONY、Panasonic)
  • Panasonicはアプリから音も拾えるがそれをZoomでキャプチャして流すことはできない。SONYはそもそも音は聞けない。
  • スマホに直接マイクを接続した場合も、やはりアプリが認識しなかったり、しても絵との同期に問題が出そう。

などの問題があってボツ。

で、結局のところどうなったかというと、先ほど先方から連絡があり、関係者に発熱者が出て実施が無期限延期になりましたorz。難しいですね。炎天下の屋外作業を伴うプロジェクトだったので発熱はしますわ。自分も昨年の案件で軽く熱中症と思われる発熱。PCR検査では陰性でしたが安全優先で実査を中止にさせてしまったことがあります。涼しくなった頃にまたリトライできるといいなと思います。

で、やっと本題。今回の試行錯誤の中で見つけたとある映像伝送手段が色々と応用が利きそうで、まだあまり日本語の解説ページが多くなさそうだったので、ご紹介してみようと。

■VDO.Ninjaの紹介と簡単な使い方(ここから本題)

上記の試行錯誤をしている間に、たまたまFacebookの(英語の)OBSグループで名前を見かけ、調べてみたらスゴいじゃんこれ!となりました。ちなみに少し前まではOBS.Ninjaという名前だったぽいです。実際にはOBS Studio以外でも使える汎用性の高いサービスなので改名したんでしょう。

簡単にいうと、ブラウザ同士で簡単に映像&音声伝送が低遅延で行えるサービスです。OBSには「ブラウザソース」という指定URLの内容をソースとして扱う仕組みがあるので、わざわざブラウザで当該ページを開いてそれをウインドウキャプチャする必要なく映像を受けることができます。無料です。

少し技術的な説明をした方が理解が深まりそうなので、ベースとして用いるWebRTCというプロトコルについて先に説明します。

WebRTCはモダンなブラウザが実装している映像、音声を伝送する標準規格で、暗号化もブラウザが受け持ってくれて、ZoomやTeamsがブラウザからも参加できているように、HTML5上で比較的簡単に映像、音声を伝送するサービスを構築することができる仕組みです。利用者は専用アプリをインストールしたりしなくていいし、開発者も本来高いスキルを要する映像通信技術の大半(ファイアウォール超えや暗号化、GPUのハードウェアエンコード支援の利用、etc.)をOSの区別すら必要なく実装できてしまいます。しかもRTMPのような従来のプロトコルよりも遅延が低いとか。

さてそのWebRTCですが映像伝送自体はPeer-to-Peer、つまり端末同士の直接通信で行われ、暗号化も自動で行われます。ただし最初のハンドシェイクの部分だけはインターネット上のサーバーが仲介する必要があります。VDO.Ninjaはその互いの紐付けの部分を代行してくれるWebサービスという理解でいいと思います。実際の映像通信はここのサーバーを経由しないので比較的小規模で運用できるのか、Steveさんという個人主体のプロジェクトのようです。しかもサーバー一式はGithubで公開されているので、自前サーバーや完全閉鎖LAN内で稼働させた人はそちらを利用することも可能でしょう。Steveさんはサーバー代月$1,500を支援するスポンサーを募集していますので、VDO.Ninjaが有用で長く続いて欲しいと思う方は是非寄付を検討しましょう。Github Sponsorsによる継続支援やPayPalなどによる一時寄付も選べます。

■VDO.Ninjaを使ってみる

全体的に英語UIですが、手順はクッソ簡単です。サービス名であるVDO.ninjaは実はそのままサービスのURLになっています(.ninjaなんていうgTLDがあったんだ…)。つまりブラウザのアドレス欄に「vdo.ninja」を打ってリターンをします。いくつか方法はありますが、まずは映像を送信する側の端末(スマホ等)で開きましょう。

トップページ

「Add your Camera to OBS」はカメラ映像の送信、「Remote Screenshare into OBS」は画面共有です。ただし現状スマホからは画面共有は使えずボタンも出現しません。

ここでは全者をPCから開いてみます。

準備画面(カメラ/マイク設定。実際には黒枠にカメラ映像が映ります)

「Video Source」と「Audio Souce」プルダウンメニューにOSが認識しているカメラとマイクが表示されるので選択します。その前にブラウザからカメラとマイクへのアクセス許可ダイアログが表示されるので許可します。一度拒否してしまうとこのサイトがブラックリストに入れられてダイアログも出ずに不許可になってしまう場合がありますが、その時は(操作はブラウザによりますが)プライバシー設定などから除外対象サイトから外すなどします。(ちなみにこのようにWebRTCはブラウザがカメラやマイクにアクセスする際に必ずユーザの許可を得る仕組みになっているので、URLを踏んだだけでカメラやマイクが不正アクセスされることはありません。)

実際には黒枠内に選択したカメラの映像が見え、「Audio Source」見出しの脇に音声に応じたピコピコ(レベルメーター)が表示されます。

次ページで発行されるURLの乱数部分が含まれますが偶然一致してしまう可能性もあるので、ここでパスワードを付加することもできます。

で、「START」を押すと送信が開始されます。

送信中画面(実際には黒枠内にカメラ映像)

右上にグリーンで表示されているURLが受信者用のURLになります。このURLを相手方にメールやMessengerなどで伝え、ブラウザで開いてもらえば映像と音声が流れるはずです。

ここの時のURLのフォーマットを比較してみると、

  • 送信者用: http://vdo.ninja/?push=hogehoge
  • 受信者用:https://vdo.ninha/?view=hogehoge

という感じで、pushかviewかの違いのみになります。要するに=の後のhogehgoeの部分が一致すれば映像/音声が流れます。このサイトでは乱数で決めてくれますが、自分で他の人とかぶらない文字列を指定しても大丈夫なはず。かぶりそうな時はパスワードを追加します。パスワードがついたURLは、

  • 送信者用: http://vdo.ninja/?push=hogehoge&pw=abcdef
  • 受信者用:https://vdo.ninha/?view=hogehoge&pw=abcdef

となります(abcdefがパスワード)。

OBS Studioにソースとして取り込む(1)

2つの方法があります。1つ目はもっとも簡単な方法で、OBS Studioのソースとして「ブラウザ」ソースを使います。

OBSの「ブラウザ」ソースに設定

URLに発行したID、PW入りのURLを貼り、表示したいサイズを指定、音声も取り込みたい場合は「OBSを介して音声を制御する」チェックボックスをONにします。

OBS Studioにソースとして取り込む(2)

もう一つの方法は作者のSteveさんがリリースしているElectron CaptureというビューワーでURLを入れ、表示された映像をOBS Studioのウインドウキャプチャで取り込む方法です(Windowsのみ)。一見、外部ツールを使う分効率が悪そうですが、Steveさん曰く「it may offer a more flexible and reliable method of capturing live video than the browser source plugin built into OBS.」とのことです。マウスカーソルが完全に隠せるとか、バッファー指定で音声同期が外れにくいなどあるようです。メリット一覧はこちら。パケットロス耐性が高く、システム負荷が低いということなので、面倒ですが使った方がよさそうですね。

送信側のハードウェアエンコード支援を使用する

一般にOBSを動かしたりする受信側ハードよりも、スマホ等を使う送信側の方が非力であることが多いでしょう。その時、ローエンドなCPUやモバイルSoCでも映像をリアルタイムに圧縮して送信するにはGPUのハードウェア支援を使用することが重要になってきます。WebRTCベースである利点として、ここいら辺は各OSのブラウザが(ハード的に対応していれば)活用してくれるという点。VDO.NinjaでこれをONにするには圧縮コーデックにH.264を指定するのみです。H.264はBlu-rayなどにも使われるメジャーなコーデックなので数年前のCPUやスマホでもフルHDくらいなら支援が受けられます。

送信側でハードウェア支援を有効化する為に、H.264を使うぞという宣言を受信側のURLオプションを使うのがミソです。

  • パスワード無し: http://vdo.ninja/?push=hogehoge&codec=h264
  • パスワード有り:https://vdo.ninha/?view=hogehoge&pw=abcdef&codec=h264

ブラウザにもよるかも知れませんが、標準ではVP9というYoutubeなどで使うコーデックが優先されるようです。ただ最新のハードだとVP9でもハードウェア支援が受けられたりするので、あまり違いは出ないかも知れません。スマホや非力なPCの場合に試してみて、画質やCPU付加を比べて良い方を使えば良いでしょう。

ちなみに送信側でハードウェア支援を活用できているかの確認は、映像送信中に送信側のブラウザ上でCtrlキーを押しながらプレビュー映像をクリックします。

送信側で詳細情報を確認

するとこんなリストが出てくるので「video_encoder」の欄が「ExternalEncoder」になっていればOKです。試しにURLから「&codec=h264」をなくすと「libvpx」となりVP8か9のソフトウェアエンコーダーライブラリが使われているのがわかります。

URLパラメーターにはコーデック以外にも色々指定できます。使い方はこちら。パラメーター一覧はこちらです。ビットレートを指定したり、カメラ/マイクデバイスのリストでデフォルト選択されるデバイス名を埋め込んだりできるようです。

再利用可能なリンクを作る

上記の手順でAdd your Camera to OBS」や「Remote Screenshare into OBS」から送信URLを生成すると毎度ランダムな文字列のIDが発行され、OBS Studioなど受け側で毎回URLを書き換えなければならず不便です。また上記のようなオプションパラメーターをURLに埋め込むのも骨がおれる作業です。

そういう場合はこちらのジェネレーターを使ってGUIでオプションを指定してURLを作成し、送信側、受信側に渡せば何度でも再利用することができます。

ルーム機能について(検証途中)

まだしっかり試せてないのですが、サーバー上に仮想ルームを作成し、一旦そこに複数のカメラ映像を集め、ブラウザ上でスイッチャーのように使ったり、音声のノイズ低減やテキストチャット機能が使えたりするぽいです。

■まとめ

驚くくらい簡単に遠方の端末のカメラ映像、音声、画面共有を表示したり、OBS Studioなどのソースに入力できるVDO.Ninjaを紹介しました。原理的にはNDIの遠隔版であるNDI Bridgeとほぼ同じ仕組みだと思いますが、送信側がブラウザなのは同様で、受信側があちらは専用ツールが必要、こちらは不要という点が異なります。厳密に画質や遅延、処理負荷などを比較したわけではないですが、おそらく原理上は似たり寄ったりになるんではないかと思います。だとしたら手軽さでは断然こちらに分があるのではないかなと思います。

望みはスマホからUSB(UVC規格)経由のWebカメラやHDMIキャプチャアダプタ経由のビデオカメラ映像を送信できるようになることですね。これはOS側の対応待ちというところです。ちなみにChromeOSはUSBカメラをソースとして指定できました。できるだけ軽量安価な端末というと現状ではChromeOS+Chromeが候補でしょうか。Raspberry Pi4やJetson NanoにLinuxを入れてChromeを使ってもいいようなので、いずれ自作でVDO.Ninjaエンコーダーユニットを組んでみたい気もします。

私の理解ではファイアウォールを超えられつつもきちんと暗号化でP2P通信ができるので、なんだかんだでZoomやTeamsになりがちな業務案件でも説得の余地があるかなと。最悪ソースもってきてローカルサーバーを建てたらどうなの、とか。まぁ企業さんだと現場寄りの人を説得するだけでなく、そこから伝言ゲームで情シスとか上司とかに納得してしてもらう必要があるので難しいかもですが…

ともあれ非常に汎用性が高く、手軽で、遅延が少なく、安全な映像伝送手段としてNDIと並んで注目株ではないかなと思います。どこか機会があったら活用してみようと思います。

RTMP実験続き。HDMIキャプチャ+Android経由にて。

前回の屋外UTに向けた配信環境の検討実験。

Androidでも使えるHDMI-USBキャプチャアダプタBU110で、スマホ画面にビデオカメラからの映像を映し、それをZoomやTeamsの画面共有で送ったらいいかなと思ってセットアップしてみた。

そしたら以前に購入してあったUSB Camera Proというアプリが、(USB WebカメラやHDMIキャプチャの多くが対応する)UVC入力映像を表示するだけでなくRTMP始め多くのプロトコルで配信できることを発見。前記事で構築したOBS Studio + NGINXの受信環境に対して送信テストしてみました。

USB Camera Proの特長として、

  • ハードウェアエンコーダによるH.264またはHEVC(H.265)エンコード対応
  • 自動または固定ビットレート、キーフレームの挿入秒数を指定可能
  • 解像度とそれに応じたフレームレートも指定可能。
  • 音声はステレオ48kHz固定(多分)
  • 複数のRTMPサーバー設定を記憶し、送信時にリストから選択可能
  • UVCカメラ検出時に自動起動
  • 起動時に自動RTMP送信開始
  • その他、録画や動体検知なども可能

という感じ。600円にしてはなかなか多機能です。UIは最低限でかなり使いづらいけどw。解像度とフレームレートは一定の関係があるらしく、例えば1280×720の場合、50~60fpsしか指定できず、30fpsや15fpsに落としてレートを稼ぐということはできないぽい。

WiFiで試した感じは先のビデオカメラ(NX80)内蔵のエンコーダーよりもかなりマシで1秒遅延くらい。音もきちんと届きます。

WAN経由は使ったAndroid端末のGalaxy Note 10+に入っている楽天モバイルMNOのSIMだとなぜかエラーになってつながらず。仕方ないのでまたしてもdocomo契約のiPhoneにテザリングさせたらすんなりOK。さすがにWAN経由だと遅延や画質が酷くなるかと思いきや、調子がいい時はWiFiとかわらない1秒遅延で収まることも。ただしその幅自体が不安定で、45秒くらいになったり音が途切れたり。途中で設定変えるとおかしくなりがちで、OBS再起動したり、「メディアソース」のプロパティ画面を一度開いてOKすると治ったり。ちょっと実務で使うのは不安が大きいかなー。

H.264と265ではビットレート1/2で同等の画質といわれるくらいデータ効率が良くなってるはずですが、ここもあまり差は感じず。ハードウェア支援が入ってる端末なら負荷もそんなに変わらないのかな?長時間送信し続けた時のバッテリーの減り方などまでは検証できておらず。

バッテリーの減りはやはり激しいです。問題なのは唯一のUSBポートがキャプチャアダプタで塞がるので充電しながら使えないという点。一応USB PD給電対応のハブで使えはしました。ただ充電しながらで発熱などはどうなるかは未知数。

■Teamsで画面共有してみる

とりあえずスマホ画面にカメラのスルー画を映すこと自体はできたので、今度はこれをTeamsの画面共有で送信してみました。結果としてはさすがにオンライン会議ツールだけあって遅延はかなり少なく1秒あるかないか位で安定。画質が犠牲になってそうですが、RTMPよりは安定してる印象。Teamsは解像度をかなり動的に変化させますがさほど見づらさなどな感じず。圧倒的にこちらを使った方が良いです。Teamsならば個別のストリームをNDIで取り出せるのでOBSに入れるのも楽勝。

ただPCの様に画面共有時にシステム音声を送信する機能はないので、カメラからの音声をTeamsに流すことはできなそう。スマホ本体のマイク音声になってしまうかも。Wireless Go2のようなUSB外部マイクの音を入れるにはさらにUSBポートが必要になるし、どうかなーって感じです。なおUSB Camera Pro自体は音声モニター機能がありUVCから来た音声をスピーカーで鳴らすことはできます。

■まとめ

RTMPはやはり古い規格なせいか、遅延やビットレート辺りの画質の安定性ではしんどいなーという印象。Teamsが直接UVCカメラの映像や音声を共有してくれたらなーと思えてなりません。

 

RTMP送信できるビデオカメラ(NX80)からOBS Studioに入力してみる

今度、屋外でユーザーテストをする予定があって、映像をどう撮って見学者に配信するか検討をしています。屋外である製品を試用している参加者の様子を、見学者部屋またはリモートにリアルタイム中継したいという感じ。スマホで撮ってZoomとかTeamsに流せば簡単なんですが、やはり参加者が持つスマホの手元をアップで撮りたかったり、バッテリー含め連続稼働時間の問題や通信途絶時にも映像は録画しづづけたいも。やはりビデオカメラ自体でも録画をしつつ送信をしたい。HDMI出力映像ネット送信できてバッテリーでも稼働するものといえば、パッと思いつくのはLiveShellシリーズとXperia Proでしょうか。

LiveShell ProはATEM MINIと入替で手放してしまったし、Xperia Proは高い上にHDMI入力を使えるアプリは限られていてバクチ要素も高い(例えばZoomは現状ダメっぽい?)。

もうちょっと手持ち機材でなんとかできないかなと思いついたのがHXR-NX80がもっているRTMP/RTMPSの送信機能です。以前にちょっと試して上手くいかなくて諦めたんですが、再挑戦してみることに。OBS Studioのソースの1つとして入れられれば他の映像とミックスして記録ができます。

■RTMP/RTMPSとは?

RTMPはNDIやWebRTCなどよりも昔から(FLASH時代?)からある映像伝送のプロトコルです。RTMPSはSSLで暗号化するバリエーション(以下まとめてRTMPと記述します)。今でもYoutube LiveやTwitchなどのライブストリーミングサービスへの送信に使われてたりします。USTREAM華やかなりし頃のビデオカメラは単体でWi-FiにつながりRTMP/RTMPS送信する機能がついていました。ただUSTREAMが終わってしまった現在、あくまでUSTREAMを想定した設計になっていた製品と、カスタムサーバーを手入力して使えるものとで命運が分かれ、Panasonicなどは「ライブ配信機能自体の終了」のお知らせを出してたりします。そこはちょちょっとファーム修正してカスタムサーバーに対応して欲しかったものです。

とりあえず手持ち機材ではSONYの業務用カメラであるHXR-NX80がカスタムサーバー(URLとストリームキー)指定による送信に対応しているので、まずはこれでテスト。受け側であるOBS Studioは「メディアソース」ソースで「ローカルファイル」のチェックを外すとURLが入力できるフィールドが出現し、そこから設定できる_はずでした_。

■RTMPにはpushとpullがある!

さて早速NX80からOBSに映像を流してみようとするも、ちょっと様子がおかしい。

こちらはNX80のRTMP接続先の設定画面。URL欄とストリームキー(暗号キー)欄があります。

そしてこちらはOBSの「メディアソース」ソースのプロパティ画面。

どちらにもURLを指定する欄があります。一方OBS側にストリームキーを指定する欄はありません。ストリームキーはURLの最後につければ良いみたいとわかりましたが、それぞれが相手のURLを指定するってあんまり見ない設定方法です。OBS側は受け口をパスとストリームキーをまとめてURLの形で指定するのかなと思い、自身のIPアドレスをベースに適当に作って見てもダメ。

おかしいと思ってググってみるも、OBSからRTMPサーバーに配信する時の記事ばかりでなかなかOBSでソースとしてRTMPを受けることに関する情報が見つけられません。NX80側もYoutube Live向けの簡単な例があるだけ。

それでも調べているうちにわかったこととして、RTMPにはpushとpullに2種類の指定方法があって、文字通りpushは映像出力側(エンコーダー)から受け側のURLを指定して送りつけるもの、pullは映像受信側(デコーダー)が送り側のURLを指定するものです。そしてNX80はpushのみに対応し、pullの受け役はできない。OBSはpullのみに対応し、pushの受け役にはなれない。つまりどちらもクライアントとしてサーバーに要求する側であって、サーバーとして待ち受けすることができないという訳です。NX80は送る側、OBSは受ける側でマッチしているにも関わらず、どちらも自分が言い出しっぺになれなければ気が済まず、「聞く耳」は持たない、という感じでしょうか。

■仲介者としてRTMPサーバーを用意する

ということで、聞く耳持たないクライアント両方からの声を聞き互いを仲介する者としてRTMPサーバーが別途必要だということがわかりました。これの仕事はあくまで取り持ちだけなのでそんなに処理性能は求められないらしく、Apacheのライバル的なWebサーバーソフトであるNGINX(エンジンエックスと読みます)にRTMPエクステンションを組み込めば実現でき(両方とも無料で使える)、Raspberry Piなどでも充分実用になるようです。Raspberri PiでRTMPを受けてオンボードのHDMI出力から出力するというBlackmagic designのStreaming Bridgeみたいなこともできてしまうぽい(遅延は大きそうなものの、これはいずれチャレンジしたい)。

とりあえず今回は本当につながるかテストする為、OBSを動かしているWindows PC上にDockerで仮想サーバーを建てて実験してみました。

参考にしたのは以下の動画。

ただしLinuxでコマンドラインでの説明だったのを、WindowsのDocker Desktop(GUI)向けに適宜読み替えて進めました。Docker Desktop自体、初めてでよくわからず、なんでもできそうで以外とコマンドラインに頼る感じ?少なくとも最初にDockerイメージをもってくるところはシェルからやる必要がありました。ポイントは、動画の1:15くらいにあるように

としてやることです。-p 1935:1935がポイントで、ホストPCのポート1935と仮想PCのポート1935 を紐付ける(ポートフォワード)してやるわけです。これをしないでダウンロードサイトの例文で導入してしまうと通信ができない状態になります。コレでハマりました。きっと後からでも変更できるんでしょうけど、Docker Desktopからは見つけられませんでした。GUIでやろうとする場合はお気を付けください。

設定が完了するとこんな感じになりました。右上の5つのボタンの真ん中で起動した状態です。

「Ports」欄の上段がIPv4、下段がIPv6のポートです。IPv4が「0.0.0.0:1935」となっていますが、これで「(ホストPCのIPアドレス):1935」で通信が届きます。

5つボタンの左から2番目を押すとシェル(コマンドプロンプト)が出現するので、あとはまた動画に従い、nano(テキストエディタ)をインストールし、/etc/nginx/nginx.confを書き換えます。

完成形はこんな感じ。 これで、エンコーダー(今回はNX80)からは

を指定し(ストリーム名は空欄)とし、OBS Studioの「入力」欄は

とします(Dockerを動かしているホストPCのIPアドレスが192.168.0.153と仮定)。

NX80ではRTMP設定画面で「実行」し、カメラ映像画面に戻ったあと更に「THUMBNAIL」ボタンを押さないと配信が開始されないので注意。もちろんNX80上で同時に録画もできます。

■LAN内でも遅延が2秒程度、WAN経由で45秒!

ついにこれでNX80のリアルタイム映像をOBSソースとして入れることができました。NX80の内蔵Wi-Fi(2.4GHz)経由で自宅内LANでのやりとりですが遅延が2秒くらいあります。配信解像度が「640×360」と「1280×720」から選べますが、どちらも遅延は変わらない印象。DockerとはいえホストPCの能力はそれなりにあると思うので、NX80のエンコーダーによる遅延でしょうか。あるいはRTMPというプロトコル自体がそういう傾向なのかも知れません。

他のカメラやマイクとあわせることを思うと2秒という遅延はかなり厳しいですね。これがWAN経由だとどうでしょう?iPhone 12 Pro Maxにテザリングして、docomoの4G回線でテストしてみました(自宅側はdocomo光 PPPoE)。結果は45秒程度の遅延がありました。更に厳しいですね。

ちなみにOSB側の「メディアソース」プロパティで「可能場合ハードウェアデコードを使用」オプションはONにしてしまうと絵と音がズレてダメでした。なんでもハード支援を使えばいいってもんでもないですね。絵だけGPU処理になって同期が外れてしまうんでしょうか。音ズレが発生している場合は確認してみてください。

個人的メモ:RTX1210側の設定として、NATのポート開放、フィルタリングでポート1935のTCPおよびUDP通信をホストPCに向け、フィルター型ルート設定でIP+1935を送信元と宛先それぞれのフィルターを追加してやる必要がありました。

 

現地では中継拠点(受け)とカメラ側双方がモバイルルーター+LTE回線環境になることを考えるとさらに酷いかも知れません。また受け側はグローバルIPアドレスが必要になる点も注意が必要でしょう。ゲストWi-Fiなどが提供されていたとしても使えません。

そう思うとちょっと現実的には使いづらい方法な気がしてきました。

やはりTeamsを経由して受け側でNDIで取り出してOBSに持ってく方が素直かも知れません。

■まとめ

とりあえず定期的に興味がわきつつもなかなか成功しなかったRTMPが実際に動かせてみられて有意義な実験となりました。今後他のファクターも加味して活用の場を見定めていきたいと思います。

ユーザテストで活用するOBS Studio 日本語ガイドを公開しました

とあるお客さん向けにOBS Studioのハンズオン勉強会を実施することになり、その時の資料をもったいないので公開しました。

今後もちょいちょい手入れするかもしれないのでGithubに置いておきます。ユーザーテストでOBSを使ってみたいという方の参考になれば幸いです。

2021年、配信時代のUTビデオカメラの期待の星を予約しました SONY ZV-E10

以前、「UTに向きそうなビデオカメラ2020」と題して、UT撮影用カメラの要求仕様を解説しつつ、PanasonicのVX992Mというモデルを買ったという記事を書きました。

2019年のモデルですが、いまだ現役モデルで先日もばっちり活躍してくれました。

ちなみに、その前には2015年にもUT視点の要求仕様をまとめつつ、SONYのCX670を購入した記事を出しました。

これもまだウチでは現役。6年も経ってますがあれから1世代しかモデルチェンジしてなくてCX680がフルHDランナップでは現役スタンダードモデルというからビデオカメラ業界の衰退ぶりはドン引きするレベルです。

(しかしメーカー長期欠品中でAmazonではプレ値がついてるっぽいのでご注意ください)

その他、ブログ書くのすっかり書き忘れていたようですが、SONYの業務用ビデオカメラHXR-NX80というのも導入してみました。

かなり清水ダイビングなお値段でしたが、さすが業務用だけあってきめ細かな設定ができるし安定感あります。SDカードが2スロットあって録り逃しを不正でくれるところなんかもまさに業務用という感じ。XLRマイクがつなげられたり、HDMI出力端子がミニやマイクロではないフルサイズのコネクタなところなんかも良いです。

そんなビデオカメラ事情ですが、コロナ禍におけるUTの実施スタイルも大きく変わることとなり、要求仕様も段々変化してきているように思います。前回2020年1月のまとめから1年半。改めて最新のオススメスペックをまとめつつ、個人的に新しく予約したカメラの紹介をしたいと思います。

■UT配信時代に求められるビデオカメラの仕様とは?

ウィズコロナUTの大きな違いは密室に見学者が集まることを避けリモート見学になったことと、感染防止対策(マスク、アクリルシールド、ソーシャルディスタンス、換気、etc.)による音声収録の重要性が増したことじゃないかと思います。スマホアプリ等のフルリモートでUTが実現できる案件やインタビュー調査の場合はともかく、やはりハードウェアを伴うUT案件だと会場調査が必要で、感染拡大状況と綱引きしつつどうにか実施している現場も多いのではないでしょうか。その際に少しでも人が集まる機会を避ける為、見学者はネットワーク中継された映像を見る形式が増えています。本記事ではこの形態をセミリモートUTを呼んでおくことにします。参加者とモデレーターは会場に集まるものの、その様子はリアルタイムでZoomやTeamsなどのオンラインミーティングツールを使って中継し、見学者はそれを見ながらチャットで議論したりモデレーターに追加質問を投げたりといったスタイルです。

こうした配信に適したビデオカメラのスペックという観点が2021年のカメラ選びには必要な気がしています。配信の場合、ビデオカメラ単体で本体に直接録画できる映像はあまり重要ではなくて、OBS Studioのようなツールに映像ソースの1つとして入れるキャプチャ前提の映像出力デバイスという位置づけになります。UTでは大抵複数の映像ソース(手元、表情など)を扱い、それをOBS上で合成して録画したり配信したりという形になります。極端なことを言うと録画機能を持たないWebカメラを使う手もありますが、それだと

  • 光学ズームがないので設置範囲に制限がつく(邪魔になるような近くに置くなど)
  • USBケーブルが直付けで長さが適切に調整できない(延長ケーブルは不安定化の原因になりがち)
  • 露出やホワイトバランス調整ができないと画面を映した時に白トビしたりおかしな色味になる

などの限界もあり、個人的にはやはりビデオカメラを使いたいなと思います(一部のWebカメラの中にはこれらに対応できるものもあります)。表情カメラなどあまり画質や厳密なフォーカス調整を要しない部分にWebカメラを組み合わせるのはアリでしょうし、要は適材適所だと思います。

で、配信前提のUT用ビデオカメラとして私が重視したいポイントは、

  1. HDMI出力がクリーンである
  2. 本体で録画してなくてもデモモードや省電力モードにならない
  3. 各種マニュアル調整ができる(露出、ホワイトバランス、フォーカス)
    • それを電源切っても記憶してくれるか、設定セットとして保存できる
  4. 外部給電で安定して動く
  5. HDMI端子がフルサイズだとなお良し

辺りかなと思います。

・HDMI出力がクリーンである

正式な機能名ではないのですが、HDMI出力時に、本体液晶画面に出るようなOSD(操作UI)を含まない純粋な映像を取り出せるかどうかです。当然ながらOBS側で受け取る映像に録画インジゲーターや残量表示、操作ボタンなどがあっても邪魔なだけです。しかしこれ、地味すぎてカタログページの仕様表とかみても載っていないし、共通した機能名すらないので調べたり店員さんに聞いたりしてもわからないことが多いです。一般にある程度より上のグレードや業務用はOK。また最近めの機種では大丈夫なことが多い気がしますが、断言は難しいです。ネット掲示板などで既にもってる人に聞いてみるなどするしかない気がします。新製品を予約で買う時はこれが一番不安です。

・本体で録画してなくてもデモモードや省電力モードにならない

配信形態ですと、カメラのHDMI出力を使うだけで本体に録画する必要はありません。まぁ録っておけばOBSがコケた時にバックアップになるというのもありますが、どちらかというと、録画開始するのを忘れて本番中に電源が切れたり店頭デモモードに切り替わったりする方が問題かなと思います。また基本カメラ側をあまり見ないので録画可能残量を見落としがちで、これまた本番中意図しないタイミングでトラブルになったり。

バックアップ録画してもしなくても電源が落ちない、というのが理想かなと。割と最近の機種ならHDMI出力中は落ちないものが増えた気がします。2015年に買ったSONYのCX670は落ちたりデモモードに入ったりしがち。

・各種マニュアル調整ができる(露出、ホワイトバランス、フォーカス)

これはあまり配信かどうかと関係ないですが、UTでは自発光デバイスである液晶画面をアップにして撮ったりします。こういう時、通常のオート撮影だと問題が起きがち。部屋の明るさ基準で画面部分が白く飛んでしまったり、ホワイトバランスが極端に青白い方に寄ったり。またオートフォーカスも大抵まともに機能しないです。したとしても、参加者の手がかぶった時にいちいち手にピントが映ったりするとフラストレーションです。これらは全てマニュアルで固定しておける方が安定した映像になります。

・それを電源切っても記憶してくれるか、設定セットとして保存できる

UTは1時間セッションをして30分休憩、といったことの繰り返しです。あるいはお昼休みだったり空のセッションスロットなどもまたぐし、なんなら日を超えて連日実査ということも少なくありません。その時はさすがに一旦電源を落としたくなります。この場合に上記の設定が毎回リセットされてしまうと再調整が面倒くさいしトラブルの元になります。電源を入れ直しても設定を復帰してくれたり、いっそユーザプリセットのような機能で丸っと状態を保存し、いつでも呼びだせる機能があると重宝します。セッテイングの日にいた詳しい人が実査当日にいない、なんて場合でも、設定呼び出し手順さえわかっていれば簡単にその日の担当者が設定を復元することができます。

これはそもそもマニュアル操作があるカメラとセットなことが多いですが、やはりある程度上の機種になる気がします。デジタル一眼カメラなら割とありますが、ビデオカメラだと家庭用はそうないかも知れません。

・外部給電で安定して動く

これも配信するかどうかあまり関係ないですが、ビデオカメラならほぼ問題ないと思います。後述のデジタル一眼カメラの場合、仕様としての連続撮影時間がそう長くなかったり、本体の温度が上がりすぎると暴走を防ぐために強制的に録画を停止してしまうものもあります。

またリチウムイオンバッテリーは常時フル充電だと劣化が早く進行します。ほぼ室内、外部電源ありでしか使わないUT用カメラの場合、バッテリーは抜いてACアダプタのみで稼働できた方が、バッテリーの無駄な劣化も防げるし、本体の発熱源を減らせるメリットもあります。これまたカタログではなかなか判断できない要素です。

・HDMI端子がフルサイズだとなお良し

これは一部の業務用モデル以外は望むべくもないという感じですが、本体についているHDMI出力端子がmini HDMIやmicro HDMIといった特殊サイズでない方が、ケーブルを選ばずに使えて便利です。mini/micro HDMIケーブルだとどうしても選択肢が限られますし、変換アダプタはトラブルの元です。特にmicro HDMIのような小さな端子に変換アダプタ+HDMIケーブルのプラグという荷重が長時間かかることは破損の可能性が高まりまます。三脚のように高い位置につけたカメラだとケーブルの床面までの重さも上乗せされてしまいます。ケーブルを上手く固定してコネクタへの負担が軽減されるよう配慮しましょう。

■ミラーレス一眼カメラがいいかも?

そもそも最近ビデオカメラというカテゴリが衰退期になっており、各メーカーとも新製品をほとんど出していません。Canonに至っては家庭用ビデオカメラからは撤退しています。「スマホでいいじゃん」層と「デジタル一眼カメラで高品質な”作品”を録りたい」層の二極化のあおりでしょうか。コンデジ同様元気がないジャンルです。最新のセンサー技術や画像処理技術もスマホかデジタル一眼カメラに投入され毎年のように新型モデルが登場している一方、いわゆるビデオカメラの方は数年単位で更新が滞ってる”冬の時代”となっています。2019年のVX992M以降、これといって興味を惹かれる機種も出てないですね。この機種は上記要件、microHDMI端子であること以外はほぼ満たしているので、現状オススメしやすい機種ではあります。

そんな折、先日実務でカメラを3,4台使う必要があって、プライベートで猫撮りメインで買ったミラーレス一眼カメラのSONY α6600を投入してみたんですが、なかなか良かった。HDMIクリーンだし、マニュアル設定は微妙な色味も含めてかなり細かく調整効くし、それをユーザプリセットで保存できる。レンズを交換すれば適正な画角と明るさが得られる。ビデオカメラよりセンサーサイズが大きいので室内でもノイズを抑えた映像になるなど。ちょっと割高だけどHX80みたいなガチ業務機よりは(レンズを合わせても)安いし、別売りアクセサリでXLRマイクも付くし、もうちょいだけ安いヤツをCX670とのリプレイスでほしいなーなんて思い始めました。

■UTに最適かも知れないミラーレス機が出た!

そんあタイミングで噂だけ聞こえていた動画志向のミラーレス機が出ました!SONYのZV-E10というモデルです。

ZV-1というVlog向けのコンパクト機があったんですが、それをセンサーサイズをAPS-Cにしてレンズ交換可能にした感じの上位モデルという位置づけです。

ガチのVlogerには手振れ補正が弱いとかクロップが大きい(手振れ補正や4K/30Pにすると実効画角が狭くなり望遠寄りになってしまう)とかお値段なりの残念仕様が指摘されていますが、UTで三脚に載せて撮るにはさして弱点ともなりません。むしろメリットとして、

  • バッテリー抜いて外部電源アダプタが使える
  • Youtuberに神マイクと崇めらているデジタルガンマイクECM-B1Mや、BluetoothマイクECM-W2BTがデジタル接続で使える
  • Webカメラモードに音声が付き、専用ソフトが不要になった(UVCモード)
  • リアルタイム瞳AFや「商品レビュー用設定」など定評のあるAF性能
  • キットレンズ付きで8万とビデオカメラ+αくらいの実売価格

といった点が挙げられます。

  • バッテリー抜いて外部電源アダプタが使える

本機はSONY初(?)のUSB Type-Cポート搭載機で、Power Delivery対応かどうかは不明ですが、より安定した給電ができそうです。バッテリーを抜いてUSB給電動作できるかは不明ですが、少なくとも下記の給電アダプタが使えるようです。

ソニー ACアダプター AC-PW20

ソニー ACアダプター AC-PW20

10,190円(11/20 06:21時点)
Amazonの情報を掲載しています

ダミーバッテリー形状のコネクタをバッテリーの代わりに差し込みタイプです。以前からあるアクセサリですが、うちのα6600はバッテリー形状が異なり使えませんでした。ちょっと高いですが、これが使えるのであればバッテリー無し、常時AC駆動ができるとみて間違いありません。バッテリーも劣化しないし、充電の熱で動作が不安定になることもなく安心して長時間運用できそうです。

  • Youtuberに神マイクと崇めらているデジタルガンマイクECM-B1Mや、BluetoothマイクECM-W2BTがデジタル接続で使える

SONYカメラの大きなアドバンテージはマルチインターフェースシューだと思います。通常ストロボをつけるところですが、SONYはここに通信端子を搭載し、マイクを接続できるようにしています。少し前の高級機からデジタル通信でより高音質な収録ができるようになったんですが、私のα6600含めAPS-Cモデルは対応しておらず、いわゆる神マイクと言われるECM-B1Mもアナログモードでの使用に限定されていました。これが初めてAPS-C機でデジタル対応となりました。言っても直結ですしUTなど業務用途に影響するレベルの違いではないかもですが、個人的にはB1Mの本来の性能が引き出せる点は楽しみです、

ソニー ショットガンマイクロフォン ECM-B1M ILCE-1対応

ソニー ショットガンマイクロフォン ECM-B1M ILCE-1対応

37,973円(11/20 14:23時点)
Amazonの情報を掲載しています

またBluetoothマイクも新型ECM-W2BTが登場しています。ECM-W1Mから送信機の使用時間が3->9時間となり充電式になったのが大きな違いですが、こちらもデジタル接続できます。

  • Webカメラモードに音声が付き、専用ソフトが不要になった(UVCモード)

従来の一部機種ではテレワークブームにImaging Edge Webcamというツールを介してUSBカメラ化できるようになりました。しかし、後付けの機能なので解像度がイマイチだったり音声はとれなかったり、そもそもカメラを認識しなかったりと無理矢理感が否めない仕様でした。

本機ではソフトウェア不要でネイティブにUVC規格の外付けカメラとして振る舞うことができるようになっており、OBS StudioなどへHDMIキャプチャアダプタ無しに映像、そして音声も入力できます。解像度はカタログみてもわかりませんでしたがZV-1で1280×720に上がっていたようなので、それより下がることはないんじゃないかと思っています。できればフルHDくらいいけるといいなと。

  • リアルタイム瞳AFや「商品レビュー用設定」など定評のあるAF性能

SONYのデジカメはAF(オートフォーカス)が速度、精度ともに優秀です。人物を録る際には瞳AFで正確に人物の顔にフォーカスが合います(残念ながら動物は動画時には対応しないんですが…)。表情用カメラなどにするのに有用でしょう。

一方瞳を認識する故にその状態でなにかをかざして見せるような動作をした時にそちらにピントが合わない(顔にあわせたまま)という問題がありましたが、ZV-1およびZV-E10では「商品レビュー用設定」が追加されています。Youtuberがよくやる手のひらを後ろにかざして瞳を隠すようにする動作が不要になるわけですね。UTで使う機会があるかという微妙ですがインタビューとかに共用するならアリかも知れません。

いずれにせよそこらのビデオカメラよりはAFは優秀と考えて良いでしょう。

  • キットレンズ付きで8万とビデオカメラ+αくらいの実売価格

オススメのビデオカメラVX992Mが現在6万円台後半くらい。ZV-E10のキットレンズ付きが8万ちょうど位。キットレンズの仕様がUTに最適かどうかはなんともですが、とりあえずそんなに大きな違いでもない気がしています。OBS Studio用と考えるとビデオカメラだと別途HDMIキャプチャアダプタを買わねばなりません。千数百円の激安品は遅延など品質面で問題があるのでやはり1万円くらいの出費にはなるでしょう。そう思えば更に差は縮まります。まぁZV-E10のWebカメラモードの解像度が720pだとしてそれで足りるかってのもありますが。

私はとりあえずCX670をこれにリプレイスしていくつもりで予約してみました。発売は9月中旬なのでまだ結構先なのですが、手に入ったらまたレビューしていきたいと思います。

[オマケ] レンズ周りのスペックを比較

ビデオカメラとデジタルカメラではレンズ性能の表記が違っていて直接比較が難しいのですが、カタログでわかる範囲でキットレンズのE PZ 16-50mm F3.5-5.6 OSS(型番SELP1650)の仕様をVX992Mと比べて見ます。

SELP1650の画角(ズーム範囲)は文字通り16-50mm。APS-C基準なので、いわゆるフルサイズ(35mm換算)というのにすると24-75mmになります。VX992Mは広角端が30.8mm(4K撮影時)ということなので、24mm vs 約31mmでZV-E10+SELP1650の方がちょっぴり広角スタートになります。一方そこからの光学ズームはVX992Mが20倍なので桁違いに望遠ということになります(16-50は3倍強)。ここはやはりセンサーがマメ粒みたいに小さく、形状が前後に長いビデオカメラの方が倍率を伸ばしやすいということですね。APS-Cで20倍を目指したらメチャメチャデカいレンズになりますし、お値段も本体の何倍にもなります。5倍とか7倍でも本体くらいの価格になります。おそらくUTのような室内撮りで20倍が必要になることはまずないですが、5倍くらい、画角でいえば100mmくらいあるとカメラ設置位置に自由度が出てよいかなと思います。先日は18-105mmレンズでiPadのディスプレイの2m後方くらいから撮って、目一杯まではズームしなかった感じでした。それくらいはあるといいかもですね。

ただそれでも結構デカくなってくるので、参加者の正面から撮るにはちょっと存在感ありすぎかもです。使い分けですね。

あとは50mmでも4Kでキャプチャして必要な画角で切り出して使うのもアリかなと思います。

HDMIの伝送距離を気にして光ファイバー型ケーブルにしてみたら思わぬ効用もあった

その昔、デジタル信号をやりとりするケーブルにそう品質差はないやろと思っていました。しかし年々高度化、高速化するUSBやHDMIケーブルなどはやっぱり安物はトラブルになりがちですし、昨今は充電ケーブルとしてもスマホはおろかPCまで充電するようになってきたUSBケーブルなんかは品質気をつけないと危ないですよね。

さて今回はHDMIケーブルについてなんですが、最近こちらも5m、10mという長さになってくると低品質のケーブルでは機器を認識しないなどトラブルの元になりやすいという情報を耳にしました。例えばATEM MINI Proなどでは4つあるHDMIポートの1番と2~4番では回路がわかれていて、後者は結構動作がシビアなんだとか。ケーブル長が長くなり信号品質が落ちると、1番では認識するのに2~4番のHDMIポートでは映らない、みたいなことが起きるんだそうな(これ現場で助けになるかも知れない豆知識ですね。いざとなったら長いヤツを1番につなげ!と憶えておきましょう)。

そもそもそうならないよう、長尺のケーブルは特に品質に気を配らないといけないなと思った次第。プロの方々は5mを超えたらリピーター(信号増幅器)をかましたり、中に制御チップの入ったHDMIケーブルを使うんだとか。

リピーターはこんなヤツでしょうか。

電源不要なヤツと外部給電に対応できるヤツがあるようです。USBハブなんかと同じで給電した方がより安定するんでしょうか。そんなに高いものでもないですが、できれば余計な機器や電源は増やしたくないものです。

そこで出てくるのはチップ入りのHDMIケーブル。メタルケーブルだけどなんらかの制御チップが入っているもの。例えばAmazonブランドのコレ。

こういうのは特長として入力側と出力側が決まっているようです。こちらも10mとしては値段はそう高くはない感じ。さすがAmazonベーシック。「音声に遅延が出る」とレビューに書いてる人もいて少し不安。やはり単なる電気的な結線ではない分、制御/変換処理でレイテンシーがあるんでしょうか?

次に今回初めて知ったのが内部的に光ファイバーを用いたHDMIケーブル。両端のコネクタ部分に変換基板的なものがあって一旦光信号に変換して伝送するっぽいですね。ビックリです。特長として(最近原材料費が高騰している)金属線と比べてメートル単価は安いので、両端の変換基板の分は割高なものの、例えば10mから20mになった時の価格差は小さい、と。長くなればなるほど光ファイバータイプの価格デメリットは小さくなっていく(逆転までは行かない?)ぽい。また光ファイバーなのであまり深く折り曲げるとポキっと折れて回復不能になるという取り扱いの注意点もあります。またAV機器マニアの間では短尺のケーブルでも映像や音質が良くなるというメリットも囁かれているようです。さすがに2mとかだとかなり割高感あるので気軽には試せないですね。むしろHDMI切り替え時の信頼性やレスポンスが上がるなら買ってみたいですが、、

で、こちらも当然変換基板や光ファイバーの品質に差はあろうかと思いますが、とにかく試してみないとと思い、とりあえず手が届くものを1本買ってみました。

買ったのはこちら。

1万円近くしますが、購入時点で20%引きクーポンが出ていて割安感があったのと、別の更に安いものに比べて皮膜が編み込みタイプで頑丈そうだったのがポイント。しかも「無料で終身交換と払い戻しを保証」と書かれています。

ちなみに以前買って現場でも現役で使っている10mケーブルがこちら。

2018年に3,000円くらいで買ってますが、今は更に下がって2,000円くらい。つい先日も現場で問題なく使えてはいましたが、考えてみると以前セミナーで受講生に貸し出した時に映らなかったみたいなことを言われたような気も。

で、光ファイバーのものが届いたんですが、明けてビックリ。「細っ!ちっさ!」って感じ。比較写真をどうぞ。

左が今回購入した光ファイバータイプのケーブル。どちらも10m!

銅線は長さに比例して抵抗により信号が減衰していくので長いケーブルほど太く作らないと品質を担保できないというのはあるんでしょう。10mなんてこなもんだ、という考えがあったんですが、見事その考えを吹き飛ばされました。重さも明らかに軽いです。これがきちんと機能するんもであれば現場に持っていくのも、床に養生テープで配線したりするのも随分楽になります。

外皮をアップにするとこんな感じ。

ケーブル皮膜の質感

ナイロン的な樹脂でしっかり編まれていて摩耗にはかなり強そう。折り曲げにもある程度は抵抗してくれそうな雰囲気はあります。ちなみにAmazonの商品ページを見る限り最小折り曲げ半径などは記載されていませんでした。とりあえずこの直径に巻くのはOKと理解していいんじゃないでしょうか。

コネクタはやはり向きが決まっているようです。

コネクタに「SOURCE」「DISPLAY」の表記があり、向きが固定であるとわかる

うっかり逆向きに設営してしまうと引き直しが大変なので注意が必要ですね。

コネクターはやはり一般ケーブルよりは長いです。機器から突出が長く荷重もかかりがちなので少しドキドキです。うっかり力をかけてコネクタ破損ならまだいいですが、機器側の端子を壊してしまったらエラいことです。

軽くてコンパクトですが、設営時はコネクタ部分や折り曲げ箇所に多少気を遣う必要がありそうです。

一応、相性が出やすいというATEM MINI ProにPCをつないでみましたが、1番でも3番でも問題なく映り、目に見えて気になるような映像の遅延は感じられませんでした。

■まとめ

信号品質が向上し、機器の安定動作が見込めるならばと購入してみましたが、思わぬ副産物として「コンパクトにまとまり軽い」というメリットを発見しました。

当面はメタルのケーブルもバックアップとして用意しつつですが現場での品質評価をしていきたいと思います。問題なさそうなら長尺ケーブルは適宜置き換えていきたいし、クライアントから相談受けたりした時にも自信をもってオススメできるようになっておければと思います。

あとお手頃な短い光ファイバーケーブルがあったらリビングのAppleTV 4KやPS5なんかで映像や音質に違いが出るか検証してみたいなとも。

QRコードひとつでNATも超えて映像受信できるNDI RemoteがUT/インタビューで使えるかも?

先日からちらほら名前を出しているNDIというネットワーク経由の映像配信プロトコルがあります。

先日こちらのメジャーバージョンアップとなるNDI5がリリースされました。従来の(私の理解では)NDIは同一LAN内での配信がメインだったのに対し、NDI5ではインターネット越しのリモート配信をセキュアにかつ簡便に行えることを主眼としているようです。

NDIはいくつかのユーティリティ群の集合体ですが、NDI5に含まれるNDI Remoteというツールを使うと、ZoomやTeamsのミーティング招待を送るように、URL(とそれを示すQRコード)を発行し、招待された側は特別なアプリ不要でブラウザから開くだけで映像と音声を招待者に送ることができます(ブラウザのカメラ及びマイクアクセスを許可する必要あり)。招待した側がどのように映像を受け取るかというと、(他にもあると思いますが)NDI Webcam Inputというツールを起動しておき、そこから仮想ウェブカメラにリダイレクトする形になります。NDI Webcam Inputが起動していると、ZoomやTeams、OBS Studioといったツールのカメラ選択メニューに「NewTek NDI Video」という仮想カメラが出現し、それを選ぶと、遠方から送られてくる映像が受け取れ、Zoomなどに流せる、というわけです。ZoomやTeamsに流すだけなら最初から被招待者をZoomやTeamsのミーティングに参加してもらえばいいんじゃ?という気もしますが、メリットとしては、

  • スマホの場合でもアプリをインストールしてもらう必要がない
  • ユーザ登録も必要ない
  • より高い画質、解像度の映像を受け取れる(Zoomは標準で720p、Teamsは通信速度に応じてかなりコロコロ変化するで使いにくい)

などがありそう。遅延が少ないというのもNDIの特長と言われていますが、実際のところ様々な条件で比べたわけではないので確証はありません(むしろZoomやTeamsといった会議プラットフォームの方が画質を犠牲にして遅延を最低限に抑える方向に機能するイメージ)。

またWebcam Inputの映像をZoomやTeamsではなくOBS Studioのような録画/配信ツールに入れるなら更にメリットも増えます。

  • 表示(録画)レイアウトを自由にできる
  • 無料プランでも時間制限を気にせず長時間使える(録画もできる)

ただし双方向サービスではないので、インタビューやユーザテストにZoomやTeamsの代わりに単体で導入できるものではないでしょう。今のところ私が使ってみたいなと思うシーンは、ZoomなどでリモートUTをする時、相手の(Zoomでつながった)スマホで画面共有をしてもらうと、インカメラが無効化され相手の表情が見えなくなります。あるいは画面共有だと操作する指が映らないのが難点となります。こういう時に相手方にもう一台スマホなりがあれば、ZoomでNDI RemoteのQRコードやURLを送って、サクっと映像ストリームを増やせるかなと。そちらのスマホで顔なり手元なりを映せるポジションに固定してもらえばいいんじゃないかと。1つのミーティングに同じ場所から複数端末で参加するとハウリングが起きて慌てたりしがちですが、NDI映像を主宰者側で独立ストリームで受け取れるならミュートなどもそちらで制御できます。さらにTeamsならばミーティング側の個別ストリームもNDIで取り出せるので、OBSで自由にレイアウトしたUT動画を組めそうな気がします。

以前にも書いた通り、ケーブルの引き回しに関するメリットもあります。

「またHDMIやUSBの問題としてケーブル長の限界があります。USBは3.0だと数メートルが限界(規格上の上限)ですし、HDMIも10mものばすとケーブルや機器の相性が出やすくなるようです。より長い距離を伝送するにはリピーターのような増幅機器が必要だったり、HDMIだと内部が光ファイバーになっている光学なケーブルなどもあるようですが、NDIだとイーサネットケーブル、場合によってはWi-Fiでもとばせるので低コストで距離が出しやすいのも特長だと言えそうです。」

NDIはこれから注目していきたい伝送方法だと思います。

色々機材的にチャレンジングだったUTのふり返りメモ

先日の案件で撮影や配信面で初挑戦をしたので、所感をメモしておきます。

セッテイングとしては、とあるハードウェア製品の調査で最終的に4カメラの映像ストリームをOBS Studioで合成して、ウェブ会議ツールに画面共有で配信という内容でした。4ストリームの内訳は、

  • 対象製品(アングル1)
  • 対象製品(アングル2)
  • 参加者表情
  • 資料提示用プロジェクター画面

てな感じ。セッション/タスクの進行にあわせて特定のストリームをアップにしたシーンを切り替える(タスク中は製品、インタビュー中はプロジェクター、表情は常に右上にPinP、とか)ということもしました。モデレーター、提示プロトタイプ、提示資料の切り替え、見学者からのチャットメッセージ対応、配信映像(シーン)切り替えとワンオペでこなす必要があったので、1ボタンでスイッチできるようにしたりと省力化の工夫もチャレンジの1つでした。

■4ストリームの合成

1台のPCで4ストリームをキャプチャし、合成し、配信するということを安定して行うため、最新ノートPCを導入しました。ゲーミングPCです。8コア16スレッドのRyzen 9というパワフルなCPUを搭載しつつ、GeForce RTX3070という協力なGPUで映像のハードウェアエンコードをこなしたり、AI処理による優秀なマイクノイズ抑止機能が使えたりする点が特徴です。

この性能を14インチに詰め込んだだけあって、さすがにファンはうるさめでしたり、更に外付けというか下にしくタイプのノートPC冷却台もぶん回しました。

ソフトは本ブログでも何度も紹介している定番OBS Studioを使用。HDMI USBキャプチャを複数台つなげたところUSBポートの電力不足か非常に動作が不安定になり、セルフパワー式のUSBハブを入れたり、最終的には1つは後述のNDI(ネットワーク)経由でのキャプチャに切り替えたりしました。

ATEM MINIシリーズの上位モデルであるExtreme /同ISOであれば4系統の映像を好きなレイアウトで合成することができるので、PCとATEM MINIのどちらを買い換えるか悩みましたが、今回は汎用性の高さでPCを選びました。

今のクライアントも追々機材を買い揃える予定ということで、今後また4ストリームの合成が必要になる機会がすぐにあるかわかりませんが、いずれ懐に余裕ができたらATEM MINI Extremeも導入しておきたいなと思います。

教訓:USBは消費電力総量を意識し、セルフパワーハブを使う(特にノートPCの場合)

■デジタル一眼カメラの投入

当初クライアントがもっていたUSB Webカメラ x4台を使用するてはずでしたが、やはりノートPCのUSBポートは電流不足なのかめちゃめちゃ不安定で、ハブに1つずつ挿していくと3台目、4台目あたりで認識しない、映像が止まるなどトラブル続き。カメラに加えてUSBのケーブル長を伸ばすリピーターケーブルも使ったせいもあるかと思います。またUSB Webカメラは光学ズームがなく望遠撮影ができないため、カメラ設置場所に制約がでてしまうので、持ち込みでビデオカメラ + HDMIキャプチャを使用させていただくことにしました。

その際、古いビデオカメラだとHDMI出力にOSD(タッチパネルGUI)が載ってしまったり、撮影してないと電源が落ちてしまうなど問題があり、代わりに写真用に買ったα6600を投入しました。デジタル一眼だと業務用ビデオカメラ同様に各種設定(ピント、ホワイトバランス、露出など)をマニュアルで固定したり、その設定を保存できたりして結果的にかなり便利でした。唯一光学ズームだけは電源入れ直すと戻ってしまい都度再調整していましたが、そこは多くのビデオカメラも同様です。

ビデオカメラの方が光学ズームと長時間録画の安定性の面では信頼感がありますが、本体録画しないでOBS用に映像を出力するだけのデバイスとしてみると、カメラ性能や機能面ではむしろデジタル一眼カメラいいな、という感触です。

■配信用サブモニタの設置

OBS StudioはPCにつながった特定のサブモニタに全画面プレビューを出すことができます(詳細はこちらの記事の「■OBS Studioからサブモニタをプレビュー用に使う」の項をご覧ください)。

独立のモニタに常時プログラム映像を映し、その画面全体をウェブ会議ソフトで画面共有するという体制をとりました。こうすることで常に見学者に見えている映像が確認できて良かったです。メイン画面には進行シートや見学者チャットなどがゴチャついているので、ウインドウ共有だとうっかり他のウインドウがかぶって更新されないエリアなどが出てしまいます。またOBSのUIなど余計なものが配信に映り込まず、映像をフルスクリーンでお届けできる点もマル。

今回はフルHDで配信できるよう液晶の実解像度もフルHDでサイズも手頃なこちらのモニタを導入しました。

ガチ目のフィールドモニターだと画質が良いかわりに7インチとか5.5インチとか小さめのものが主流で、老眼はじまってる目にはピント来てるかの確認などは辛いものがあります。10.8インチというとiPadくらいですが、額縁が細い分専有面積はそれよりもやや小さいくらいで手頃でした。USB Type-C(Alt Mode)なら電源供給も含め1本のケーブルで賄えるのが長所ですが、今回はUSB周りはキャプチャで過負荷状態だったので、電源は付属アダプタからとり映像はHDMI接続としました。

■NDIを使った映像送信

NDIとはNewtek社が開発しているネットワーク映像伝送規格です。HDMI入力映像をネットワーク経由で送受信するハードウェアのエンコーダーやデコーダーもありますが、OBS Studioでも送受信ともに行うことができます。

今回、HDMI-USBキャプチャでUSB周りがパンク気味だったので4つ目のストリームとしてプロジェクターに映像を出していた別PCの画面はNDIプラグインを入れたOBS同士で伝送する方式に切り替えました。ギガビットイーサネット経由でフルHD/30pだと多少遅延を感じましたが、もともと動画と静止画を映示する用であまり遅延は問題にならないコンテンツでしたし、更に途中からは送信画質を720pに落としたりしてからは遅延も気にならなくなりました。

またHDMIやUSBの問題としてケーブル長の限界があります。USBは3.0だと数メートルが限界(規格上の上限)ですし、HDMIも10mものばすとケーブルや機器の相性が出やすくなるようです。より長い距離を伝送するにはリピーターのような増幅機器が必要だったり、HDMIだと内部が光ファイバーになっている光学なケーブルなどもあるようですが、NDIだとイーサネットケーブル、場合によってはWi-Fiでもとばせるので低コストで距離が出しやすいのも特長だと言えそうです。

先日新バージョンであるNDI5が発表され、インターネット越しのセキュアな伝送や、アプリいらずでQRコードなどでURLを共有するだけでスマホのカメラ映像をNDI送信する機能が実装され、今後ますますNDIは目が離せなくなる技術なんじゃないかという気がしています。今後信頼性なども含めて検証をしていきたいテーマです。

■音声収録ミスとバックアップ録音からの救済

今回の音声はRODE Wireless GO2を使いました。実践初投入です。

マスクをしたり参加者とモデレーターの間にアクリルシールドを立てたりした環境でしたが、本製品で互いの口元にワイヤレスマイクを配置できたおかげでクリアな収録ができました。Wireless GO2は音質、安定性、バッテリー保ちなど満点でした。100分のセッションに1時間のインターバルで一日3セッション実施しましたが、インターバル時間の追い充電で余裕をもって回せました。唯一クリップで胸ポケット留めした時に、生地によっては本体の自重でおじぎをしてしまいマイクが下を向いてしまうことがわかったので、別途ネックストラップを首にかけてもらい、それに装着することにしました。長さ調節できるものを百均で買ってきて、首にかけた後で少し持ち上げるように縮めてもらえば、口元への距離も近づいてGoodでした。目立つストラップにしておけば参加者さんがうっかりそのまま首にかけて帰ってしまうリスクも軽減できるかなと。

そして今回OBSの設定ミスで、途中で追加したシーンに音声ソースが追加されておらず、画面レイアウトを特定シーンに切り替えた時だけ音が途切れる、という動画が出来上がってしまいました。そこでWireless GO2の特長である送信機内へのオンボード録音機能で残っていた音声ファイルを使い、Premiere Proで合成して事なきを得ました(デフォルトOFFなので事前に専用ツールで有効化しておく必要があります)。

送信機に残っているデータはRTX Broadcastのノイズ低減フィルターを通らない素の音で、少し音量を持ち上げてやるとさすがに少しホワイトノイズが気になる感じでした。それもPremiere Proのクロマノイズ除去で簡単に消えたので、人の声に限定してみれば音質的な素性は良いんじゃないかと思います。ちなみにRTX BroadcastとPremiere Proのクロマノイズ除去では前者の方がより声の変質が抑えられていて、自然な感じでした。RTX Broadcast >>> クロマノイズ除去 > Krispという感じかな。クライアントからも聞きやすいと言ってもらえてRTX Broadcastが使えるノートPCに買い換えた甲斐があったなと思います。

教訓:音声系統のバックアップは必ず録ろう。

■AutoHotKeyによる1キーオペレーション

プロジェクターに動画や静止画、PowerPointスライドといった資料を映して、それについて感想などを聞くステップがあり、しかも結構な頻度で行き来する必要があった為、マウスで選んでダブルクリックという手間すら惜しんで、キーボードの1~0キーで切り替えられるようにしました。

実装にはAutoHotKeyをいうWindows向けのフリーソフトを活用。設定方法については別記事にまとめてありますのでご覧下さい。

PowerPointファイルの場合、sleepコマンドを使ってファイルを開いた少し後にF5キーを送信するようにしました。

 

さすがに10キーあるとどれが何だったか忘れがちで付箋に書いて貼ったりも。

■マクロキーパッドの活用

同様にプロトタイプを実行するiPadでもモデレーター側でリモート操作する必要があり、プロトタイプ作成者にキーボードショートカットを仕込んでもらい、Bluetoothキーボードの一種であるマクロキーパッドAZ-Macroを活用しました。

PC3台、ATEM Mini Pro、キャプチャアダプタ、USBハブ、充電器などがひしめくモデレーター席で、更にBluetoothのフルキーボードを置くスペースはなかったし、キー数が少ないことで混乱なく所定の操作を一発でトリガすることができました。

AZ-Macroは本体内にキーアサイン設定を書き込むことができるので、AutoHotKeyのようなキーリマップツールを使わなくてもあらかじめ所定のキーコンビネーションを割り当てておける上、それを非Windows環境であるiOSやAndroid、ChromeOSといった端末でも再現できるのが素晴らしい点です。

■まとめ

これだけやっても結局のところ結構ミスしたり切り替え操作したりとワタワタでしたが、クライアントさんも温かい目で見守ってくれていたのでなんとか無事終わらせることができました。

ようやく対面でUTが実施できるところまで戻ってきましたが、まだまだ首都圏は油断ならない状況ですし、見学者はリモート、という流れは感染が収まっても続いてく可能性は高いので、これからも精進していきたいと思います。

なんやかんやでゲーミングノートPC含めて新規導入機材が嵩んでしまったので、これから頑張って元を取っていかねばなりませんので、お仕事のご相談お待ちしております。UT自体は自分達で回せるよという場合でも、機材や配信周りの案件でもご相談いただければと思います。

OBS Studioの出力映像を外部レコーダーで負荷分散するTips

OBS Studioは録画と配信が同時にできるスグレモノのフリーソフトですが、PCがあまりハイスペックではない場合(dGPU非搭載PC等)、1台に両方を賄わせようとすうると厳しいものがあります。そこでHDMI入力のある外部レコーダーやキャプチャ装置をつけた他のPCにどちらかを任せてしまうことを考えます。しかしその際に問題になるのが、PCの画面をHDMIでそのままミラーリング出力した場合、OBSのUIなども一緒に映り込んでしまいます。なんらかの方法で範囲指定してクロップした場合も、解像度が落ちてしまったり、うっかりウインドウ位置を変更したら録画位置から外れてしまうなどの問題があります。

これを解決するためのOBS Studioの便利技を見つけたので書き残しておくことにします。

皆さんは2画面モニタのPC(ノートPC+プロジェクターなどでも可能)PowerPointのスライドショーを使ったことはおありでしょうか。あれってメインモニタ(=内蔵モニタなど)側には様々な操作をするUI込みのスライドが映り、サブ画面(=プロジェクター側)にはスライドのみが全画面表示されます。あの状態であればサブ画面側のHDMI映像をそのまま録画すれば余計なものが映り込んだり、表示区域がズレたりといった事故は起きません。以下でお伝えるのはまさにそれをOBS Studioで実現するための方法です。

Windowsで説明しますが、Macでも基本同じようにできるはずです。

1) 録画(配信)機器をサブモニタとして認識させる

PCにサブ画面用のHDMI出力があればそこに録画機器をつなぎます。設定によってはメインモニタとサブモニタに同じ内容が表示されるミラーリング(複製)モードになっている場合があります。ディスプレイ設定を開き、「1|2」のような表示になっていたらミラーリングモードです。

ミラーリング設定になっている場合の表示

この場合、そのまま画面を下にスクロールし、「マルチディスプレイ」から「表示画面を拡張する」を選びます。

ミラーリング(複製)から拡張設定に変更

そうすると最初の図が下のように「1」と「2」が別々に分かれて配置されると思います。これでサブモニタが独立した第2モニタとして設定されたことを示します。1と2の位置関係は変更可能ですが、今回はどこにあっても構いません。解像度は録画機器が対応する最大解像度になっていると思いますが、必要なら変更しておきます。

デスクトップ拡張モードに変更した状態

■OBS Studioからサブモニタをプレビュー用に使う

次にOBSを起動し、プレビュー画面上で右クリックし下図のように「全画面プロジェクター」→外部モニタのモデル名を選びます。写真ではATEM Mini Proをつないでいますがメーカー名のBlackmagic Designを略した「BMD HDMI」という名前で認識されていました。

OBSのプレビューを右クリック

これで、OBSが出力用にレンダリングしている映像がセカンダリモニターに文字通り全画面表示されます。プライマリモニター上でOBSのサイズをかえたりしても影響を受けません。またスタジオモード(シーン変更などをプレビューしてから反映させる2画面モード)を使っても常に出力画面側が送られます。

後は録画機器側で録画するだけです。応用としては、外部接続を配信用のエンコーダー機器にするとか、HDMI-UVCキャプチャアダプタで別PCに取り込むとかも可能でしょう。

これでOBSが稼働するPC側では録画(配信)を行わなくてよくなるので、その分負荷を下げられるわけです。HDMIケーブル1本で接続できるので比較的距離をおいた場所に配置できる点も良いです。

試してないですが、キャンバスや出力解像度を4Kとかにして、Elgato 4K60S+のようなハードウェア4Kキャプチャ機器をつなげば、フルHD x4みたいなマルチカメラ映像も縮小無しで高解像度に安定して4Kキャプチャできちゃうのじゃないかなと。

参考になれば幸いです。

NDIを使ってTeamsインタビューの録画レイアウトをカスタマイズする

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ストリーミングを許可する」を「オン」にします。以下の第二、第三の壁があるので、意図せず会議が盗聴されるようなリスクはほぼないんじゃないかなと思います。

Web管理画面

■Teamsクライアントアプリ上で有効化する

次がTeamsアプリ上での許可です(ブラウザやモバイルアプリではできません)。「アプリのアクセス許可」を開くと「ネットワークデバイスインターフェイス(NDI)」という項目があるので有効化します。

PC用Teamsアプリの設定

これはトラップがあって、「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会議上の参加者別のストリームが現れます。

NDI Sourceからストリーム一覧が選べる

この例だと「ローカル」が同一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ならインターネット経由でも使えるので、用途で使い分ける感じですね。こちらも機会があれば試してみたいものです。