LOLS IRLは標準のBELABOX互換srtlaを話すので、自分のレシーバーはこちらのホスト型リレーとまったく同じに動きます。何を動かすか、どのポートが重要か、そしてモバイルデータの回線が自分のマシンに届かなくなる唯一の間違いを説明します。
何かをホストする必要はありません。無料のLOLS Cloudリレーがあるので、ボンディングはすぐ使えますし、自分でレシーバーをホストして、誰にも頼らないこともできます。ホストする理由はちゃんとあります。配信を自分で管理できるインフラに届けたい、こちらのリレーが近くにない場所で物理的に近いマシンが欲しい、上限を気にしたくない、あるいは単に自分のものは自分で動かしたい、などです。アプリのどの部分もこちらのサーバーに縛られていないので、切り替えはホスト名の変更だけです。
スマホ(wifi + モバイルデータ)
|
| srtla、UDP、ネットワークごとにソケット1つ
v
srtla_rec 公開UDPポートで待ち受け、回線を元に戻す
|
| プレーンSRT、UDP、localhost上
v
メディアサーバー MediaMTXまたは同等のもの
|
+--> OBS、またはTwitch / Kick / YouTubeへのリストリーム
部品は2つで、それぞれ役割は1つです。BELABOXプロジェクトのsrtla_recがボンディングを理解する部分で、スマホが開いた回線はすべて1つのグループとして登録され、それをふつうの1本のSRT配信に戻します。そのあとSRTリスナーに転送し、そこからメディアサーバーが引き継ぎます。よく使われるのはMediaMTXで、OBSに渡したり、再配信したり、録画したりできますが、SRTを受け付けるものなら何でも使えます。
レシーバーには、スマホが配信に使うすべてのネットワークから届く必要があり、実際には公開アドレスが必要です。小さなVPSで十分です。やるのはパケットの転送でトランスコードではないので、コア数よりもメガビット単位の帯域と控えめなCPUのほうがずっと大事です。配信する場所に地理的に近い場所に置いてください。一番近いリレーを選ぶのと同じ理由で、距離は取り戻せない遅延で、再送のたびにもう一度かかります。
自宅のLANにある、192.168.1.50のようなアドレスのレシーバーには、Wi-Fiからしか届きません。モバイルデータの回線はプライベートアドレスへ経路をたどれないので、登録されず、ボンディングになりません。余計な手順を踏んだだけのWi-Fi配信になり、統計には回線が2本ではなく1本しか出ません。
公開アドレスのあるマシンでホストするか、ルーターでUDPポートをLAN内のマシンに転送して、アプリをルーターの公開アドレスに向けます。ダイナミックDNSの名前を使えば、アドレスが変わるたびに打ち直さずに済みます。
| ポート | 用途 |
|---|---|
| UDP、srtlaのポート、インターネットからの受信 | スマホが触れる唯一のポートです。慣例は5000。束ねた回線はそれぞれ別の送信元アドレスとポートから届くので、回線ごとに開けたり設定したりするものはありません。 |
| UDP、SRTリスナー、ローカル | srtla_recが組み立て直した配信を転送する先です。MediaMTXは初期設定でSRTを8890で待ち受けます。プレーンなSRTクライアントにも公開させたい場合を除き、インターネットに公開する必要はありません。 |
| メディアサーバーが提供するもの | OBSや視聴者へのRTMP、RTSP、HLS、WebRTC出力で、完全に自由で、ボンディングの経路には含まれません。 |
ファイアウォール、クラウドのセキュリティグループ、ルーターの転送ルールは、初期設定がTCPのことがとても多いです。TCPだけのルールに向けて送ったsrtlaの登録は、どこにもエラーを出さずに消えてしまい、レシーバーが落ちているのと見分けがつきません。回線が登録されないときは、ほかを調べる前に、ルールのプロトコルを確認してください。
srtla_recはSRTのストリームIDをそのまま通すので、アプリのStream id欄に入れるのは、その先のサーバーが期待するものです。MediaMTXなら、publish形式で、認証がオンのときはパスと、必要に応じて認証情報です:
publish:mypath
publish:mypath:username:password
インターネットに開けているポートなら、認証をオンにしてください。公開アドレスにある認証なしのpublishエンドポイントは、いずれ自分以外の誰かに見つかります。
srtla_recが待ち受けているUDPポート。srtla_recは回線ごとに接続の登録をログに残し、すべて1つのグループにまとまります。回線が2本なら、同じグループに登録が2つ出るはずです。1つしか出ないなら、2つ目のネットワークがホストに届いていません。原因は、プライベートアドレス、TCPだけのファイアウォールルール、スマホで動いているVPNです。どこかの手順で詰まったり、2つ目の回線を受け付けないレシーバーを一緒に見てほしかったりしますか?Discordで聞くか、support@lols.ggにメールしてください。いる地域、統計オーバーレイの表示、レシーバーのログを添えてもらえれば、たいていはメッセージ2通のやり取りで済みます。
関連:アプリ側とインジケーターの読み方は5分でできるボンディング、ホストしたくないなら無料リレーの使い方、そしてすべてのガイド。