OBS Studio Plugin「SRC-Link」リリース

1. SRC-Link の概要

この OBS Studio プラグインはリモートから送信される大量のクリーンフィード(ビデオストリーム)を、 切り替えながら OBS Studio に入力できるようにするものです。 ここでいう「大量」とは 8 とか 16 とかではなく、理論上は 100 でも 1,000 でもということになります。

SRC-Link ではこれを実現する為に、リモートの OBS Studio を一括してコントロールするオーケストレーションを使用しています。 プラグインとともに使用される Web サービス SRC-Link コントロールパネル がオーケストレーションを担う本製品の 中核技術となります(SRC-Link プラグインはクライアントです)

要するに大規模なリモートコラボ配信用のサポートシステムですが、セットアップ作業やコミュニケーション負荷を大幅に削減する事を目的としています。 出演者となるストリーマー(ゲスト)には OBS Studio に SRC-Link プラグインを導入してもらい、 メイン配信運営者(ホスト)にメンバー登録しておきます。出番になったら SRC-Link をスタンバイ状態にして待機してもらい、 あとはホストのタイミングでストリームを切り替えできます。

従来だと、繋がるまでにいろいろ煩雑なやり取りがある(アドレスやストリームキー・パスフレーズなど接続情報を送ったり、設定方法をレクチャーしたり、 トラブルシュートしたり)と思いますが、SRC-Link はそれらをプラグインと SRC-Link コントロールパネル で自動化するイメージです。 また、間違ったゲストが、間違ったラインに繋いでくるような事態に陥らないために、 出番によってパスフレーズを変えたりする必要があるかもしれませんが、それも SRC-Link が面倒を見るので安全に進行できます。

コラボレーション相手の YouTube 配信画面を取り込むという力業は古来より使われていますが、 後述するように、SRC-Link ではクリーンなソースをパラレルで受け取るので、よりホストにクリエイティビティメリットがあります。 伝送プロトコルとして SRT を使うので安定性確保と遅延も抑える事ができます。

主な機能

  • ホストは、ゲストから複数のクリーンフィード(映像音声)をパラで受信できます。受信対象のゲストはメンバーの中から選択できます。
  • ゲストは、レシーバーに接続してスタンバイ状態になれます。 スタンバイ状態は送信開始がいつでも可能な状態で、ホストのコマンドによって映像音声の送信を開始します。
  • ゲストに接続情報(アドレス、ストリームID、パスワード等)を送付する必要はありません。 ゲストはそれらを OBS Studio に設定する必要がありません。
  • ホストは、ゲストのスタンバイ状態と映像スクリーンショット(5~30秒間隔で更新)を SRC-Link コントロールパネル 上で確認できます。
  • スタンバイ状態のゲストは、文字通り映像音声を送信せずに待機しているだけなので、理論上、ホストが受信可能なストリーム数よりはるかに多い数 (10 でも 100 でも 1,000 でも)存在できます。 ※ただし、SRC-Link コントロールパネル のプランで上限があります。
  • 映像音声の伝送プロトコルは SRT を使用しています。ストリームIDやパスフレーズは SRC-Link コントロールパネル により制御されます。
  • ホストとゲストが同じ LAN 内でも使用可能(インターネット接続は必要)。 ホストとゲストが同じ LAN 内にいる 参照

仕組み図解

SRC-Link コントロールパネルはストリームを中継しません。あくまでもホストとゲストの OBS Studio を制御するシステムです。

ストリームはゲストの OBS Studio からホストの OBS Studio に直接 SRT で送信されます。

または外部リレーサーバーを経由させることもできます。

2. 導入方法

SRC-Link プラグインは、無料のオープンソースソフトウェアです。 以下からインストーラーをダウンロードできますので、OBS Studio にインストールしてください。

※今所 Windows 版のみサポートしています。

SRC-Link コントロールパネルは、サインアップが必要なウェブサービスです。 無料で使用できるフリープランがありますが、ホストする場合は幾らかの機能制限が存在します。

とりあえずは、無料プランで試してみることをお勧めします。

有償サブスクプランとしては、基本的な機能が提供される安価なサポータープラン、通常のスタンダードプランから選べます。 プロプランは近日登場予定となっています。

尚、ホストが有償サブスクプランに加入しているなら、ゲストはフリープランでも不都合がない様になっています。 従ってゲストへ参加を案内する際は、基本的には SRC-Link プラグインをダウンロードし、 SRC-Link コントロールパネルに「フリープラン」でサインアップしてもらえば OK です。

サインアップとサブスクプラン詳細は下記ページより確認できます。

https://src-link.live/subscriptions/plans

有償プランに加入しているゲストのプレミアムメンバーシップを活用すれば、 ホストがフリープランで不都合なく運営という事も可能です(ゲスト全員が有償プランに加入している前提)

3. 使い方

SRC-Link は機能的に ホストゲスト に分かれます。

ホスト - クリーンフィードを受信する OBS インスタンス(及び単一の SRC-Link ユーザー)

ゲスト - クリーンフィードを送信する多数の OBS インスタンス(及び多数の SRC-Link ユーザー)

つまりメイン配信を運営するのがホストで、メイン配信に出演する演者がゲストということです。

以下では、それぞれの手順を説明します。

3.1. ホストの場合

  1. ウェブブラウザでSRC-Link コントロールパネル にサインアップ/ログインし、レシーバーをセットアップします。 通常は、サインアップ直後にサンプルが作成されているので、これを編集します。

    まず必要な数(配信に同時出演するゲスト数)だけスロットを追加/削除します。

    次にゲスト1人から受信したいクリーンフィードの数だけソースを追加/削除します(例: ウェブカメラとゲーム画面なら 2 個)

    レシーバー: ホストがスロットやメンバーの登録・管理を行うための仮想的なサーバーです。 ホストは通常、単一の OBS Studio でクリーンフィードを受信する事が想定されますが、複数の OBS Studio で受信することも可能です。 レシーバーには複数のスロット、複数のメンバーが含まれます。

    メンバー: レシーバーに接続して待機可能な、登録済みのゲストです。

    スロット: 1 つのスロットは、ゲスト 1 人分のソースのセットを表します。つまり、スロット 1 つにつき複数のクリーンフィード (Web カメラ、ゲームキャプチャなど) を取り扱えます。ゲストはすべてのフィードをパラで送信しますから、 ホスト側でスイッチングや合成が可能です。

    ソース: ゲストは複数のソースをパラで送信できます。ソースの数はホストによって指定され、ゲストは自身の OBS ソースから自由にビデオとオーディオ を選択できます。

  2. 基本的に、ホストはレシーバーにメンバー登録する必要はありません。

    テストの目的で自分自身を登録したい場合は、そのようにできます。 自分で送信して自分で受信することもできますが映像がループする場合が有りますので注意してください。 スタジオモードを使用してプレビューすることで、プログラムアウトに映像を出さずに受信を確認できます。

    映像の送信方法は ゲストの手順 を参照してください。

  3. OBS Studio に SRC-Link プラグインをインストールします ダウンロードはこちら

    Assets から osi-src-link-[version]-windows-x64-Installer-signed.exe をダウンロードし、実行すればOKです。

  4. OBS Studio を立ち上げ、「ツール」メニューから「SRC-Link 設定」、あるいは「SRC-Link」ドックいずれかの「ログイン」ボタンをクリックします。

  5. ウェブブラウザが開いて承認画面が表示されます。「承認」ボタンをクリックします。

    ブラウザを閉じてよいと表示されれば OBS Studio と SRC-Link コントロールパネルが接続され、使用可能状態になります。

  6. 次に OBS Studio の「ツール」メニューから「SRC-Link 設定」を開いてください。

    「待ち受けUDPポート範囲」で、使用する UDP ポートの範囲を設定してください。これらのポートは外部からアクセス可能でなければなりません。 NATルーターや FW 環境の方はポートの開放を行ってください。

    必要となるポートの数はインプットソースの総数と同じです。

    例えば、ゲスト1人につきカメラとゲームキャプチャの 2 本フィードを受信したいとして、配信に最大ゲスト 3 名が同時出演する場合は、 2 x 3 = 6 ポートを消費します。

    OBS Studio の SRT 入力は必ず 1 インプットにつき 1 ポート消費する仕様になっているためです。

    ポート開放が難しい環境では、リレーサーバーの導入 を検討してください。

  7. OBS Studio でソースに「SRC-Link ダウンリンク」を追加してください。

    ダウンリンク: レシーバーからホストへの入力接続のこと

    ソースプロパティの「接続」で、受信したいレシーバー・スロット・ソースをそれぞれ選択してください。 これらは同じ組み合わせの物が他のソースに存在してはいけません(エラーは出ませんが競合して片方しか受信しません)

    複数 OBS で分散して受信するような使い方をしている場合も、他の OBS 含めて被ってはいけません。

    ソースプロパティでは解像度とビットレート範囲も設定でき、これらの設定はゲスト側設定のレギュレーターとして機能します。 ゲスト側では、必ずホスト側で設定した解像度とビットレート範囲内の値が使用されます。

    「リレーサーバー」は特別な理由があって使用せざるを得ない場合にのみチェックを入れてください。 プランで有効でない場合、またはセットアップされていない場合はチェックできません。 外部リレーサーバー連携は現在ののところ実験的な機能です。 詳細は リレーサーバーの導入 を参照してください。

  8. OK を押してソースプロパティを閉じるとソースが受信スタンバイ状態となります (正しく設定されていれば赤い警告表示が消え、青い「Receiving...」表示になります)

  9. 再び SRC-Link コントロールパネルの ホスト メニューを開いて、 レシーバーを選択し(レシーバーが1つのみなら選択された状態になります) 「メンバーを追加」ボタンをクリックして、レシーバーに出演予定ゲスト全員をメンバー登録してください。

    上記フォームの通り、メンバー登録はゲストに招待コードを送るやり方と、相手からゲストコードを受け取ってホストが入力する方法の二通りあります。 招待コード は SRCH-xxxx-xxxx-xxxx-xxxx ゲストコードは SRCG-xxxx-xxxx-xxxx-xxxx の形式です。

    招待コードはフォーム送信後に表示されます。

    招待コードを送った場合は、ゲストによって承認されるのを待ちます。

    本番前のよきタイミングで、ゲストにスタンバイ状態になるように伝えてください。

    スタンバイ状態のメンバーはリンクアイコンがアクティブになり、スクリーンショットが表示されます。 スクリーンショットは 5 秒から 30 秒程度で随時更新されます。

    招待コード: レシーバーにゲストを招待するには、ホストが招待コードを生成してゲストへ送付します。 ゲストはコードを使用する事で自らメンバーに登録します。

    ゲストコード: ゲストからホストに参加を申し込むには、ゲスト自身のコードをホストに送付します。 ホストはゲストコードを使用してレシーバーにメンバーを登録します。

  10. SRC-Link コントロールパネルの ホスト メニューで、メンバーの中から出演者をスロットに割り当てます。 スロットに割り当てられたメンバーのゲストからのみ、クリーンフィードを受信できます。

  11. メンバーがスタンバイ状態なら、スロットに割り当てた段階で映像が OBS Studio の SRC-Link ダウンリンクに表示されます。

    オーケストレーションではスロットに割り当てられて初めて接続が実行される仕組みなので、切換えから映像表示までタイムラグがあります。 瞬時に切り替わるスイッチャー的動作ではないのでご注意ください。

  12. 更にスロットを切り替えると ホスト OBS Studio 側の映像も自動的に切り替わります。

3.2. ゲストの場合

  1. ゲスト側もサインアップが必要なので、 ウェブブラウザでSRC-Link コントロールパネル にサインアップ/ログインしてください。

  2. ゲストの OBS Studio に SRC-Link プラグインをインストールします ダウンロードはこちら

    ゲストもホストも同じプラグインを使用しますので、 同様に Assets から osi-src-link-[version]-windows-x64-Installer-signed.exe をダウンロードし、実行すればOKです。

  3. OBS Studio を立ち上げ、「ツール」メニューから「SRC-Link 設定」、あるいは「SRC-Link」ドックいずれかの「ログイン」ボタンをクリックします。

  4. ウェブブラウザが開いて承認画面が表示されます。「承認」ボタンをクリックします。

    ブラウザを閉じてよいと表示されれば OBS Studio と SRC-Link コントロールパネルが接続され、使用可能状態になります。

  5. ホストのレシーバーに登録します。登録する方法は、ホストへゲストコードを送付して追加してもらうやり方と、ホストに招待コードを生成してもらって 自分で入力するやり方の二通りあります。

    • ゲストコードの場合

      SRC-Link コントロールパネルで ゲストコード メニューを開き、 デフォルトでサンプル生成済みのゲストコードをコピーするか、「作成」をクリックして新しい物を作ってください。 尚、新たに作る場合はコードの有効期限を設定可能です。

    • 招待コードの場合

      ホストが自分のメールアドレスを知っていて、 SRC-Link コントロールパネルのメールアドレス [email protected] からメールが送られてきた場合は、 記載されているアクティベーション URL をクリックして承認してください。

      ホストから招待コードのみが(チャット等で)送られてきた場合は SRC-Link コントロールパネルの ゲスト メニューで「招待コードを引き換える」ボタンをクリックし、 送られてきた招待コードを入力してください。

  6. レシーバーのメンバーになると、OBS Studio の「SRC-Link」ドックにレシーバーが表示されます (もしも複数のレシーバーに参加している場合はプルダウンで選択してください。同時にスタンバイできるレシーバーは 1 つだけです)

    レシーバーを選択すると「アップリンク」がアクティブになり、ソースが選択可能になります。 それぞれにクリーンフィードとして使用する OBS Studio のソースを割り当ててください。 ソースの数と内容はホストが名前で指示しています(例:Webcam、ゲームキャプチャ等)

    アップリンク: ゲスト側からレシーバーへの出力接続のこと

    指定はあってもゲスト側で「なし」に設定することもできますが、ソースの使い方はホストと相談してください。 各ソースは、どの様にメイン配信で使うかがホスト側で想定されていると思いますので、事前のホストとの取り決めに従って設定してください。

    ソースそれぞれ「ギア」アイコンをクリックすると、ビットレートや映像・音声エンコーダー、音声ソースを設定できます。 ビットレートは、最終的にはホストが指定した範囲内に制限されます。 解像度はホスト側の指定に固定されます。今のところの仕様として、ソース側のアスペクト比は無視されるので注意してください。 (例:16:9 指定のソースに 4:3 のソースを入れると横に引き伸ばされます)

  7. デフォルトでは SRC-Link のアップリンクは「仮想カメラ」と連動する設定になっています。 OBS Studio の「仮想カメラ」を開始すると SRC-Link のアップリンクもスタンバイ状態になります。

    連動機能は他に「配信」「録画」「配信または録画」あるいは「常にON」から選択可能です。

    スタンバイ状態はいつホストから映像音声が視聴されても問題ない状態としてください。 問題がある場合はスタンバイ状態を解除するかアップリンクの「眼」アイコンをクリックしてソースをミュートします。

  8. 出演が終わってレシーバーから退出したい場合は、SRC-Link コントロールパネルの ゲスト メニューで、 レシーバーの「退出」ボタンをクリックしてください。

4. トラブルシューティング

4.1. ダウンリンクに表示される画面

Receiving...(青)

ダウンリンクは正常に作成されており、接続を待ち受けている状態です。

Input is inactive(赤)

ダウンリンクが正常に作成できておらず、接続を受け付けていません。 レシーバー・スロット・ソースの設定が適切か、ソースプロパティで確認してください。

また、そもそも SRC-Link でログイン出来ていない場合もこの画面が表示されます。 OBS Studio の「ツール」メニュー→「SRC-Link 設定」で「ログイン」ボタンをクリックしてログインしてください。

Not enough ports(赤)

ポート範囲の全ポートを使い切ってしまい、これ以上割り当てられるポートが無い状態です。

OBS Studio の「ツール」メニュー→「SRC-Link 設定」でポート範囲を拡大してください。 また追加したポートを NAT ルーターや FW で開放するのを忘れないでください。

ポートが開放されているかどうかをチェックするためのエラーではありません。 尚、ポートチェック機能は実装予定はありますが、未完成であり未だ導入されていません。

4.1. ゲストはスタンバイになるが、スロットに割り当ててもアクティブにならない(クリーンフィードが流れてこない)

ゲストはスタンバイになっており、SRC-Link コントロールパネルにスクリーンショットが表示されているが、 クリーンフィードが OBS Studio に到達しない場合は、 ホスト側 SRC-Link で設定したポート範囲について、NAT ルーターや FW でポートが開放されているか確認してください。

ポートが開放できない場合は、リレーサーバーの導入 を検討する必要があります。 それも無理な場合は、お使いの環境だとクリーンフィードを受信できません。

4.2. 定期的にクリーンフィードが途切れる

フリープランでホストを行うと、1時間の連続受信時間制限があります。 時間制限を超えるとスタンバイ状態に戻され、5分間のクールダウンが発生後、再びアクティブになります。

手動で非アクティブ→アクティブの操作を行うと直ぐに再開できますが、これはそのような仕様です。

有償サブスクに加入するとこの制限はなくなります。 また、ゲスト側が有償サブスクに加入している場合も、そのゲストについては連続受信時間制限がなくなります。

4.3. ゲストがスタンバイにならない

アップリンクは初期状態で OBS Studio の「仮想カメラ」と連動する設定になっているので、仮想カメラをスタートしてください。 これは予期せず映像がホストに送られる事故を防ぐために導入している仕様です。 映像を送れる状態になってから仮想カメラをスタートしてください。

連動機能は他に「配信」「録画」「配信または録画」「常にON」から選べます。 「常にON」は OBS Studio 起動直後から送信が開始されるのでご注意ください。

4.4. ストリームが安定しない

ストリームが安定しない場合は、ホスト側で SRT と同様の調整を行います。

レイテンシの調整 (SRT)

推奨される SRT のレイテンシはラウンドトリップタイム(ping)の 2.5 倍程度とされています(この推奨値は参照する文献によってまちまちです) 例えば、ゲスト~ホスト間の ping が 50ミリ秒なら 125ミリ秒に設定する感じです。

レイテンシを増やすことで、ストリームの安定化に寄与しますが、代わりに遅延が増加します。 特に回線状況が比較的悪いモバイル回線を経由している場合は、1,000ミリ秒以上の設定を要することもあり得ます。

全体での設定

  1. OBS Studio 「ツール」メニュー→「SRC-Link 設定」を開いてください。
  2. 「レイテンシ」にミリ秒でレイテンシを設定してください。
  3. 「OK」をクリックして閉じると、全てのダウンリンクに反映されます。この時メンバーがアクティブだったダウンリンクは新しい設定で再接続が発生します。

ダウンリンク個別の設定

  1. ダウンリンクソースのソースプロパティを開き「詳細設定」にチェックを入れてください
  2. 「レイテンシ ミリ秒」にレイテンシを設定してください
  3. 「OK」をクリックしてプロパティを閉じるとダウンリンクに反映されます。この時メンバーがアクティブであれば新しい設定で再接続が発生します。

個別の設定は全体の設定よりも優先されます。

ホスト側とゲスト側双方同じ値に設定しますが、SRC-Link が自動的にゲスト側も設定します。

ネットワークバッファ―の調整

OBS Studio 側のネットワークバッファーを調整することで、回線速度が不安定な環境でのストリームを安定させる効果が期待できます。 もちろん、バッファーサイズを増やすほど遅延にも影響を与えます。

ホスト側でのみ設定可能です。

全体での設定

  1. OBS Studio 「ツール」メニュー→「SRC-Link 設定」を開いてください。
  2. 「詳細設定」にチェックを入れてください
  3. 「ネットワークバッファー」にメガバイト単位でバッファーサイズを設定してください。
  4. 「OK」をクリックして閉じると、全てのダウンリンクに反映されます。この時メンバーがアクティブだったダウンリンクは新しい設定で再接続が発生します。

ダウンリンク個別の設定

  1. ダウンリンクソースのソースプロパティを開き「詳細設定」にチェックを入れてください
  2. 「バッファー」にメガバイト単位でバッファーサイズを設定してください
  3. 「OK」をクリックしてプロパティを閉じるとダウンリンクに反映されます。この時メンバーがアクティブであれば新しい設定で再接続が発生します。

4.5. ホストとゲストが同じ LAN 内にいる

SRC-Link は LAN でも接続することが可能です。通常は、ホストとゲストが同じパブリック IP だった場合は、 SRC-Link コントロールパネルから同じネットワークにいると判断され、LAN 接続が実行されます。 ネットワーク構成上の都合で強制的に LAN 接続にしたい場合は、メンバーの編集で「LAN接続を優先する」にチェックを入れてください。

ホストマシンが複数のローカル IP を持つ場合は、SRC-Link 設定で「LAN 接続用のプライベートIP」を選択してください。 選択した IP アドレスがゲストの接続に使用されます。

5. SRC-Link の今後

SRC-Link はなにも A 地点から B 地点まで映像を飛ばすためだけのシステムではありません。

当初はいわゆる MVP として「リモートコラボレーション配信」用の機能を提供していますが、 SRC-Link コントロールパネルは今後、オーケストレーション機能を利用してホスト側から多数の OBS Studio(等の配信ソフト)を制御する、 様々な配信ワークフローに対応した機能を追加していく予定です。

もしアイデアやご要望などお持ちでしたら info [at] src-link.live または コンタクトフォーム までお寄せください。