2021年3月21日日曜日

Vtuber向け!VDO Ninja(OBS Ninja)を使ってコラボ用映像送信

VDO Ninja(旧名OBS Ninja)を使ったコラボ向け映像送信のやり方です。
Discordと違い自動的な画質の調整が入らず、高画質に映像を送ることができます。 

ここではOBS 26.02とLuppet2.0.3、Google Chromeバージョン89.0.4389.90を使ったやり方を載せていますが、Luppetを他のアプリにすることも可能です。

 送信側の準備

1.送信用映像をOBSで準備します。OBSの仮想カメラ機能を開始します。
(仮想カメラ機能は最近のアップデートで実装された機能なので、仮想カメラがない方はOBSを更新しましょう)

 

2.GoogleChromeでhttps://obs.ninja/にアクセスします。
”Add your Camera to OBS”をクリック。

3.カメラとマイクの許可を求めるウィンドウが出るので許可をクリックします。

-2021.07.17追記- Macユーザーの方はOSの設定も合わせて変更してください。
"『画面収録』の設定方法”をご覧頂き、お使いのブラウザを許可するよう設定してください。https://moji-seikatsu.net/2021/04/03/macdiscord/

4.Video Sourceに「OBS Virtual Camera」を選択。右の歯車アイコンをクリックすると品質が選べるようになるので、プレビュー映像が表示されてからBalancedを選びましょう。(表示される前では適切な解像度が設定されません。。。)解像度は1280x720になります。
もっと高画質が良い場合はMax Resolutionで1920x1080、解像度小さくても良い場合はSmooth and Coolで640x480になります。
Audio Sourceは一緒に音声を送る場合は自分のマイクを選択します。Discordを使う場合はNo Audioを選択します。
最後にSTARTをクリックして送信を開始します。

5.送信中の画面になりました。ページ上部の共有用のアドレスを相手に送りましょう。
共有用のアドレスは開始するたびにランダムで生成されます。

受信側の準備

1.OBSのブラウザソースを追加します。
URLは共有用のアドレスと、末尾に&bitrate=3000を付けます。ビットレートの指定なので動きが少ない場合は1000、動きが多くブロックノイズが出る場合は5000と調整しましょう。下の幅と高さは1280,720を入力します。

2.OBSに受信した映像が表示されます。通常の映像と同じようにクロマキーで抜いて、配信用の画面を作成しましょう。


手順は以上です。
不明な点があればコメントなりtwitterで聞いていただければ対応できるかもしれません。

OBS NinjaとSpeedifyを使ったバーチャル売り子構成

AVATAR2.0関連即売会『19の煌き2』にて千歳ゆうりさんと想間ミレイさんのバーチャル売り子をお手伝いさせて頂きました。
 


『61の輝き』から数えて3回目になりますが、今回で安定かつ満足のいく品質で行うことができましたので、その構成を公開します。

全体構成

ネットワークをSpeedifyを使って3回線まとめて速度を稼ぎつつ、冗長性を持たせました。

Speedifyでまとめた回線を別PCから利用できるようConnectify Hotspotを使ってWiFiアクセスポイントを用意、別マシンからWiFiで接続させました。

千歳ゆうりさんと想間ミレイさんの映像はOBS Ninjaを用いて表示、会場のwebカメラ映像と音声の双方向通話はDiscordを使いました。

Speedifyについて

https://speedify.com/

 

複数の回線をクラウドサーバを経由してVPNとして通信させることで、1つの回線としてまとめて使えるようにできるソフトです。スピードを稼ぎつつ、まとめている回線のいくつかがトラブルで途切れても他の回線で安定して通信を継続することができます。

Windows/Mac/LinuxだけでなくiOS/Androidでも使えます。iOS/Androidで使ったときには携帯回線とWiFiの2回線をまとめて使えるようになります。ただし、例えばですが3Mbps+3Mbps=6Mbpsとは単純にはなりません。4か5Mbps程度と考えましょう。

無償プランで2GB/月の容量制限があります。有償プランで容量は無制限となり、1ヶ月9.99ドル、1年で71.88ドル(1ヶ月5.99ドル)、2年で95.76ドル(1ヶ月3.99ドル)、一番お得な3年で107.64ドル(1ヶ月2.99ドル)の4プランが用意されています。1アカウントで5デバイスまで同時に使用できます。

ただし、Discordの映像共有の受信との相性は良くありません。詳細は不明ですが、DiscordがNitroの1080P指定でも映像を荒くしてしまします。送信側に使った場合は問題ありません。そのため、今回の構成ではOBS Ninjaを使って売り子さんの映像を受信する構成にしています。

 OBS Ninjaについて 

映像と音声を低遅延でやり取りできるwebサービスです。最大の魅力は映像を受信する側でコーデックとビットレートを指定できることです。Discordでは細かく指定できず、場合によっては画質が悪く場合があります。また、Speedifyとの併用も想定されております。

Vtuberさん同士のコラボする際の映像のやり取りにオススメです。

OBS Ninjaの末尾に"&codec=h264&bitrate=3000"とオプションをつけることでコーデックをH264,ビットレートを3000kbpsにできます。

その他のオプションはgithubのwikiにまとめられています。 

DiscordとOBS Ninjaを使ったときの遅延を比較した動画を用意しました。若干Discordより遅延が少ないことがわかると思います。

 

 欠点として、受信側が増えるとその人数分回線の帯域を使用することです。例えば3000kbpsだった場合は、2人なら6000k、3人なら9000kbps、といった具合です。

そのため受信側が多い場合には送信側には回線の余裕があることが求められます。

 

最後に

この記事を読んでやってみたいが分からないことがある、という場合には相談に応じます。twitterのDMよりご連絡ください。