TopazChatを参考に自宅にRTMPサーバーを建ててみた話

自宅にRTMPサーバーを建てた話 VRChat

今回はVRChat関連の小ネタとして、自宅サーバーにRTMPサーバーを建てた話を書きます。

きっかけ: TopazChat

VRChatで弾き語りやDJ、ゲーム画面の共有配信などをしている人なら「TopazChat」を知っている・使ったことがある人も多いと思います。TopazChatは、OBSからRTMPで配信した映像・音声を、VRChat内のビデオプレイヤーでRTSP経由の低遅延ストリームとして再生できるようにしてくれる、有志運営の無料サービスです。裏側ではWowza Streaming Engineという配信エンジンが使われていて、AWS上のインフラを寄付でまかなっているとのこと。

とても便利なサービスなのですが、ビットレート上限があったり、当然ながら不特定多数が使う共有インフラなので混雑や仕様変更の影響を受けたりします。「じゃあ同じ仕組み、自宅サーバーで自分用に建てられるんじゃない?」と思ったのが今回のきっかけです。

やったこと

TopazChatの構成(RTMPで受けてRTSPで配信する)を参考に、自宅のLinuxサーバーに「MediaMTX」というOSSのメディアサーバーを立てました。OBSから配信したRTMPストリームを、VRChatワールド内の「iwaSync3」というビデオプレイヤーギミックからRTSPで直接再生する、という流れです。仕組み自体はシンプルで、サービス化して常駐させるところまでは割とすんなりできました。

ハマったポイント(ざっくり)

実際にVRChat上で安定して再生できるようになるまでは、地味な調整が何回か必要でした。

  • OBS側の映像コーデックやBフレームの設定次第で、VRChat内の再生プレイヤーが映像を正しく読み込んでくれないことがある
  • 自宅回線特有のネットワーク設定(MTUまわり)が原因で、「接続はできるのに映像だけ途中で止まる」という原因の特定しづらいトラブルが発生した
  • VRChat側にも「信頼されていないURLの許可」といった安全設定があり、これを見落とすと何をやってもそもそも接続すら来ない

一つ一つは小さな話なのですが、「制御コマンドは通っているのに映像だけ来ない」系のトラブルは切り分けが地味に面倒でした。最終的には無事、自宅サーバー発のRTMP配信をVRChat内で安定して観られるところまでこぎつけました。

まとめ

TopazChatのような便利な共有サービスがあるからこそ気軽にVRChatで配信を楽しめるわけですが、裏側の仕組みを覗いてみると、RTMPで受けてRTSPで配信するという構成自体はOSSのツールで十分再現できることがわかりました。自分専用のインフラなのでビットレート制限も気にせず、勉強も兼ねて良い経験になったと思います。同じようなことに興味がある人の参考になれば幸いです。

コメント

タイトルとURLをコピーしました