見出し画像

VRChatで低遅延のライブストリーミングを

一般的なYoutubeLiveなどを使用した、ライブ配信では30秒程度の遅延が発生します。Web会議やゲームの画面共有などにおいて、遅延の問題は気になるものでしょう。
ここにはVRChatで低遅延でライブ配信をする方法を初心者向けに浅く広く書いておきます。

OBSのインストール(入っている場合はスキップ)

OBSとはライブ配信ができる無料のソフトウェアです、YoutubeLiveやTwitchなど様々なところで使えます。

OBSのダウンロードリン
起動後に自動構成ウィザードが起動すると思います。後で設定できるので閉じてしまって構いません。

TopazChatについて

VRChatではAVProを使うことでRTSPという低遅延なストリーミングを再生できます。多くのワールドではAVProはビデオプレイヤーのLiveというボタンで使うことができます。
またワールド作成時にAVProの設定でUse Low Latencyというところにチェックを入れることで遅延を10秒程度減らすことができます、ビデオプレイヤーによって設定画面が異なるので確認してください。

TopazChatというのは、RTSPストリーミング用のサーバーを有志の方がメタバース向けに運営してくれているものです。
TopazChatのBoothページ

OBSの設定

今回はTopazChatOBSを使ってVRC内で低遅延ストリーミングを行ってみます、記事の後半でTopazChatを使用しないで行う方法を書いて起きます。

OBSを起動したら設定を開いてください。 配信タブから、配信を行うサーバーの設定ができます。 サービスの中から、カスタムを選んでください。 サーバーの所に

rtmp://topaz.chat/live

ストリームキーには好きな文字を入れてください、今回はsakanaと入れてみます

出力タブを開いて、エンコーダーをNVENC H.264のものにして、ビットレートは合計で3000 kbps以内(推奨は映像2000kbps 音声320kbps以内)になるように設定してください。下は自分のTopazChat用の設定ですがお好みで

配信開始

設定を適応して配信開始ボタンを押すことで配信ができます。
ソースタブからデスクトップ画面や、ウィンドウなどを設定して好きな映像を設定できます。
右下が緑色に光ってビットレートの表示がされたら成功です。

VRChat内から再生する方法

今回初めてTopazChatを知った人には関係ないのですが、TopazChatには専用のプレイヤーがあり、そのプレイヤーからしか再生できないと思い込んでいる人たちがいます。
実際には上で説明したようにどこの動画プレイヤーでも基本的に再生することができます、Low Latencyが無設定の場合10秒程度遅延しますがそれでも一般的な配信方法に比べると低遅延でストリーミングすることができます。

今回実験に使うのはここのワールドです。
ここのワールドはLow Latencyの設定がされているので低遅延で再生することができます。
ビデオプレイヤーをLiveモードに切り替えて、URLの所に

rtspt://topaz.chat/live/ストリームキー

を入力してください、ここでのストリームキーはOBSの設定で入力したものと同じです。
自分は"rtspt://topaz.chat/live/sakana"と入れて再生します。
Questだとrtsp://で再生できるらしい、やってみて偉い人!

画面が映らない場合は設定内のComfort & Safetyの中のAllow Untrusted URLsにチェックを入れてください。
大体の方はこれで満足にストリーミングなどが行えると思います。
ゲームの画面共有やプレゼン、カメラ配信など楽しんでください。

TopazChatを使わない方法

この方法はポート開放が必要になります、現段階でできない人はこの記事を読んでも時間の無駄になることが多いので興味のある人だけ読んでください
TopazChatは有志の方がサーバーを提供してくれています、3000kbpsという制限や宗教上の都合で外部のサーバーを使うのに抵抗がある人もいると思います。
今回は、TopazChatと同じような動きをするサーバーを自分で建ててみましょう。

サーバー本体のダウンロード

サーバーのソフトはGithubにいい感じの物あるので自分はそれを使っています。
サーバー本体のGitHubのリンクを開いて、右下のほうにあるReleasesから自分のにあったものをインストールしてください、筆者はWindowsしか使えないのでwindows_amd64.zipをダウンロードします。
ダウンロードしたものは展開して任意の場所に保存してください。

サーバーの設定

展開したものの中にある、rtsp-simple-server.exeを起動してみましょう。

起動すると、配信側のRTSPOBSから受信するRTMP、その他今回は使わないRTP.RTCP.HLS.WebRTCが起動していることと、そのポート番号が書かれています。 デフォルトではRTSPのポート番号8554になってます、RTSPの標準ポート554なのでこれでは受信時にポート番号を指定する必要があります、ルーター側で設定でも設定できるのですがサーバー側の設定で変えられるので今回は変えておきます。 同じフォルダーの中にあるrtsp-simple-server.ymlを編集することで設定ができます。

# Address of the TCP/RTSP listener. This is needed only when encryption is "no" or "optional".
rtspAddress: :8554

# Address of the TCP/RTSP listener. This is needed only when encryption is "no" or "optional".
rtspAddress: :554

v0.21.6時点では76行目にある、rtspAdressの部分の数字を編集することでRTSPのポートを変更できます、8554554に直しておきましょう。
他にもいろいろな設定があるので自分で設定してみてください。

ポート開放について

ポート開放は多くの人にとって沼だと思います、また書いておくのでそれを読んでください。
今回はRTSP554自分以外にサーバーを使わせる意思がある場合はRTMPのポート1935のポートを解放しておきましょう。

サーバーの使い方

使い方はTopazChatとほとんど変わらないのですが。OBSの設定で
"rtmp://topaz.chat/live"と入れていたところに

rtmp://サーバーのアドレス

を入力して、ストリームキーはTopazと同じように好きな文字を入れてください。
受信するときはVRChatのビデオプレイヤーで

rtspt://自分のグローバルIP/ストリームキー

を入力することで視聴できます。

さいごに

ここまで読んでくれてありがとうございます。

RTSPサーバービットレートx人数分回線速度が必要なので個人の利用を超えての利用は難しいと思います。インターネットSpeedtestのサービスなどを利用して利用可能な人数計算しておくといいと思います。

この記事が気に入ったらサポートをしてみませんか?