メインコンテンツまでスキップ

3.7. Simulcast (サイマルキャスト)

3.7. Simulcast (サイマルキャスト)

JSEP は MediaStreamTrack のサイマルキャスト送信をサポートしており, ソースメディアの複数のエンコーディングを単一の "m=" セクションのコンテキスト内で送信できます。現在の JSEP API は, アプリケーションがサイマルキャストメディアを送信できるように設計されていますが, 単一のエンコーディングのみを受信します。これにより, 各送信クライアントが複数のエンコーディングをサーバーに送信し, サーバーが各受信クライアントに対して転送する適切なエンコーディングを選択するマルチユーザーシナリオが可能になります。

アプリケーションは, RtpSender で複数のエンコーディングを設定することにより, サイマルキャストのサポートを要求します。offer または answer の生成時に, これらのエンコーディングは, 以下に説明するように, 対応する "m=" セクションの SDP マーキングを介して示されます。サイマルキャストを理解し, それを受信する意思がある受信側も, サポートを示すために SDP マーキングを含み, JSEP エンドポイントはこれらのマーキングを使用して, 特定の RtpSender に対してサイマルキャストが許可されているかどうかを判断します。サイマルキャストサポートがネゴシエートされていない場合, RtpSender は最初に設定されたエンコーディングのみを使用します。

正確なサイマルキャストパラメータは送信アプリケーション次第であることに注意してください。前述の SDP マーキングは, リモート側が複数のサイマルキャストエンコーディングを受信して逆多重化できるようにするために提供されますが, 各エンコーディングに使用する特定の解像度とビットレートは, JSEP では純粋に送信側の決定です。

JSEP は現在, サイマルキャストの受信を設定するメカニズムを提供していません。これは, リモートエンドポイントによってサイマルキャストが提供される場合, JSEP エンドポイントによって生成される answer がサイマルキャストの受信のサポートを示さないことを意味し, そのためリモートエンドポイントは "m=" セクションごとに単一のエンコーディングのみを送信します。

さらに, JSEP は JSEP エンドポイントからサイマルキャストを要求する着信 offer を処理するメカニズムを提供していません。これは, JSEP エンドポイントが最初の offer を受信する場合にサイマルキャストを設定するには, 帯域外シグナリングまたは SDP 検査が必要であることを意味します。ただし, JSEP エンドポイントが最初の offer でサイマルキャストを設定する場合, 確立されたサイマルキャストストリームは, 着信 re-offer を受信した後も引き続き機能します。この仕様の将来のバージョンでは, 着信初期 offer シナリオを処理するための追加の API が追加される可能性があります。

JSEP を使用して RtpSender から複数のエンコーディングを送信する場合, [RFC8853] と [RFC8851] の技術が使用されます。具体的には, RtpSender に複数のエンコーディングが設定されている場合, RtpSender の "m=" セクションには, [RFC8853] のセクション 5.1 で定義されている "a=simulcast" 属性が含まれ, 各希望するエンコーディングをリストする "send" サイマルキャストストリーム記述が含まれ, "recv" サイマルキャストストリーム記述は含まれません。"m=" セクションには, [RFC8851] のセクション 4 で指定されているように, 各エンコーディングの "a=rid" 属性も含まれます; 制限識別子 (RID, rid-ids または RtpStreamIds とも呼ばれる) の使用により, それらがすべて同じ "m=" セクションの一部であっても, 個々のエンコーディングを明確に区別できます。