ボンディング:Wi-Fiとモバイルデータを1本の配信に、5分で

LOLS IRLでsrtlaボンディングを設定し、配信中に回線ごとのインジケーターを読み、初めてネットワークが切れたときに何が起きるかを知っておきましょう。

ボンディングは、スマホにあるすべてのネットワークで同時に配信を送ります。Wi-Fiが切れたら終わる配信と、何も触らなくてもモバイルデータで続く配信の違いです。一度設定すれば、あとはそれがいつもの配信開始になります。

先に必要なもの

設定する

  1. レシーバーの情報を用意する。無料リレーなら、relay-auth.lols.ggで取得するキーです。ストリームIDの形でそのまま渡されます。自前のマシンなら、ホスト名、UDPポート、サーバーが期待するストリームIDです。
  2. Streamsを開いて配信先を追加する。アプリでStreamsに進み、+をタップして、3つのプロトコルのチップからSRTLAを選びます。SRTは自分のレシーバーへの1本の接続、RTMPはプラットフォームへ直接、SRTLAがボンディングです。
  3. ホストとポートを入力する。リレーなら、地域のチップをタップすると、ホスト、ポート、名前が自動で入ります。SIMの国に最も近い地域には星が付きます。自前のレシーバーなら、公開ホスト名と、それが待ち受けるUDPポートを入力します。
  4. キーをStream idに貼り付ける。ここは間違えやすいところです。リレーのキーには最初からpublish:の接頭辞が入っているので、そのまま全部をStream idに貼り付けます。名前の欄にも、ホストの末尾にも貼らないでください。
  5. 遅延は最初は2000 msのままにする。これが初期値で、妥当な値です。高くすると不安定な電波に耐えやすく、低くすると遅延は減りますが、失ったパケットを再送する余裕が減ります。配信が始まると、アプリは実際に計測しているラウンドトリップ時間を表示し、それに合う値を提案します。なので調整は、今あてずっぽうでやるのではなく、あとで実際の数字を見て行ってください。
  6. 保存して、配信先がオンになっているか確認する。保存しただけで有効になっていない配信先は、気づかないまま配信できていない一番静かな原因です。
  7. 配信を開始して、統計を開く。ライブ画面の統計オーバーレイをタップして開きます。回線ごとに1行ずつ見えるはずです。wifiとcellで、それぞれに専用のビットレートとラウンドトリップ時間があります。2行ならボンディングできています。1行ならできていません。その理由は下のよくある間違いに書いてあります。

インジケーターの読み方

閉じているときのオーバーレイには、状態を示す点、ビットレート、エンコーダーのフレームレート、ラウンドトリップ時間、配信してからの経過時間が出ます。タップすると詳細が開きます:

表示何がわかるか
send buffer先に動く指標で、見るべきなのはこれです。映像がカクつく前にバッファが埋まるので、数値が上がっていれば、回線が苦戦している警告です。すでに失敗したという報告ではありません。
target適応ビットレートが今目指しているビットレートで、状況に応じて自動で下がったり戻ったりします。
droppedとretransmit失われたパケットと再送されたパケットです。モバイルデータで再送が少しあるのは普通ですが、ドロップ数が増え続けるのは普通ではありません。
回線ごとに1行wifi、cell、ethのラベルが付き、それぞれにビットレートとラウンドトリップ時間があるので、どのネットワークが何を運んでいるかがわかります。
各回線の行の点緑は動作中でトラフィックを運んでいる状態、黄色は接続中か停滞中、赤は切れています。配信が続いたまま行が赤いのは、ボンディングが仕事をしている状態です。
配信先ごとに1行名前が付いているので、複数の場所に送っているとき、ほかが無事なまま、どれが落ちているかがわかります。

回線が切れたときの動き

大げさなことは起きません。それが狙いです。切れた回線の行が赤くなり、残った回線がトラフィックを引き継いで、配信はつながったままです。ネットワークが戻ると、その回線はレシーバーに再登録し、自分でグループに復帰します。止めたり、再起動したり、何かを触ったりする必要はありません。

前もって知っておきたいことが2つあります。1つ目は、残った回線が配信全体を運ぶことになるので、ビットレートがいいWi-Fiでしか収まらない値だった場合、モバイルデータが運んでいる間は適応ビットレートが下がり、あとで戻ります。2つ目は、ボンディングは速さではなく切れにくさのためのもので、回線が足し合わされて太い管になることはありません。ビットレートを状態のいい1回線で運べる量にしておけば、切り替わりにはほとんど気づきません。

必要になる前に、わざと試しておく。家でボンディングで配信を開始し、統計が落ち着くまで待ってから、Wi-Fiを1分切って見てください。wifiの行が赤くなり、cellの行が引き継ぎ、Wi-Fiをオンに戻すとすべてが元に戻るのが見えます。10分のこのテストは、どれだけ読むよりも価値があり、配信の途中で知るより、キッチンで知るほうがずっといいです。

最初の挑戦を台無しにしがちな間違い

自分のネットワーク内のアドレスを指している

これが一番多い間違いです。192.168.1.50にあるレシーバーは、自分のWi-Fiからしか届かず、ほかのどこからも届きません。そのためモバイルデータの回線は登録できず、ボンディングになりません。余計な手順を踏んだだけのWi-Fi配信になります。配信先は、公開ホスト名か公開アドレスでなければなりません。つまり、リレー、ホスティングされたマシン、またはルーターで自分のマシンに向けたUDPポート転送を設定して、ルーターの公開アドレスで指定する方法です。机の上のノートPCでも同じルールです。

ストリームIDが空、または途中までしか貼られていない

レシーバーは配信元を認証するので、ストリームIDが空だったり途中で切れていたりすると、どこにもつながらない接続になります。キーはpublish:の接頭辞も含めて全部、Stream idの欄に貼り付けてください。

もっと高いビットレートを期待している

2本の回線は足し合わされません。Wi-Fiでしか運べないビットレートに設定すると、モバイルデータが運び始めた途端に配信の画質が落ち、ボンディングのしたことと正反対のことで、ボンディングを責めることになります。ボンディングが保つのはライブです。ビットレートは別の判断です。

スマホでVPNが動いている

VPNは端末上のすべてのソケットを取り込むので、アプリはネットワークごとにソケットを開けず、束ねるものが残りません。そうなると、統計にその旨がはっきり出ます。VPNをオフにするか、VPNアプリ自身の設定でLOLS IRLを対象から外してください。

プレーンなSRTサーバーにsrtlaを送っている

SRTLAには、srtla_recを動かしているレシーバーが必要です。回線を元に戻すのがそれです。プレーンなSRTのリスナーは、グループ登録を理解しません。リレーを使うか、セルフホスティングガイドにあるとおり、SRTサーバーの手前でsrtla_recを動かしてください。

地球の反対側のリレーを選んでいる

距離は取り戻せない遅延になりますし、ラウンドトリップ時間が長すぎると、接続自体が成立しないこともあります。一番近い地域を選んでください。アプリは、SIMの国に合う地域に星を付けます。

動くようになったら

次へ:無料リレーの使い方