Meet Media API で動画の割り当てを管理する

会議に接続すると、リクエストされた音声がすぐに送信され、利用可能になります。ただし、動画を受信するには、クライアントが最初に各動画ストリームのキャンバスを定義する必要があります。

キャンバスは、クライアントが動画ストリームをどのように消費するかを Meet が理解するのに役立ちます。ピクセル単位の解像度(1,280 × 720 など)、フレーム / 秒(FPS)を指定し、割り当てプロトコルを選択します。割り当てプロトコルは、SSRC よりも参加者が多い場合に、Meet が動画ストリームを選択する方法を指定します。

動画の割り当てリクエスト

動画を受信するために、クライアントはまず VideoAssignment データチャネルを介して動画割り当て リクエストを送信し、ネゴシエートされた動画ストリームのキャンバスを定義します。

動画割り当てデータチャネルを介して動画割り当てリクエストを送信します。
図 1. 動画割り当てデータチャネルを介して動画割り当てリクエストを送信します。

Meet がリクエストを受信すると、次のような要素に基づいて「関連性の高い」参加者の動画の選択が開始されます。

  • 参加者は話していますか?
  • 参加者がプレゼンテーションを行っているかどうか。
  • 参加者が画面を共有しているかどうか。

次に、Meet は「最も関連性の高い」参加者を利用可能な動画 SSRC にマッピングし、キャンバス パラメータを可能な限り一致させて動画の送信を開始します。

会議の参加者数が SSRC の数を超えている場合、Meet は関連性の高い参加者に合わせてストリームを徐々に置き換えます。

Meet サーバーはリクエストを受信し、動画ストリームを割り当てます。
図 2. Meet サーバーはリクエストを受信し、動画ストリームを割り当てます。

Meet が動画割り当てリクエストを適用すると、VideoAssignment データチャンネル全体にリソース更新が push されます。このアップデートには、SSRC からキャンバスへのマッピングが含まれています。このマッピングを使用して、クライアントは各 SSRC の動画ストリームの解像度と FPS を識別できます。逆に、クライアントは特定の解像度と FPS を探すときに使用する SSRC を認識しています。

動画割り当てデータチャンネルを介してリソースの更新を送信します。
図 3. 動画割り当てデータチャンネルを介してリソースの更新を送信します。

考慮事項

  • SSRC とキャンバスの関連付けは Meet が決定します。クライアントはリクエストでこれを指定しません。

  • Meet は SSRC を決定論的に割り当てません。たとえば、最初の SSRC が「最も関連性の高い」参加者であると想定しないでください。

  • クライアントは、必要な解像度を超える解像度をリクエストしないでください。たとえば、モデルが 480p のみを使用している場合は、1080p の動画をリクエストしないでください。

  • 解像度を完全に一致させることは、必ずしも可能ではありません。

  • クライアントは、過剰な動画割り当てリクエストを送信しないでください。これらはスロットリングされるか、無視されます。