マルチストリーム機能

概要

マルチストリームとは一つの PeerConnection の中で複数の映像や音声を動的に追加したり削除したりする仕組みです。 この機能を利用することで、複数の PeerConnection を管理せずに複数の映像や音声を使用できるようになります。

制限

  • 動的に配信側のトラックを追加したりするマルチトラックには対応していません

ブラウザ

Chrome、Firefox、Safari、Edge と主要ブラウザすべてでマルチストリームを利用できます。

シグナリング仕様

マルチストリームを利用する場合は、通常のシグナリングとは異なり、ユーザが参加や離脱をするたびに SDP を交換する必要があります。

"type": "connect"

マルチストリームを利用する場合は "type": "connect" 時に "multistream": true を追加します。

{
    "type": "connect",
    "role": "sendrecv",
    "channel_id": "sora",
    "multistream": true
}

"type": "update"

重要

"type": "update" は 2022 年 6 月リリース予定の Sora にて廃止します。

"type": "re-offer""type": "re-answer" を利用する必要があります。 対応については SDK のアップデートのみで対応できるようにする予定です。

詳細は "type": "update" の廃止 をご確認ください。

マルチストリームでは "type": "update" を使用します。これはクライアントが接続したり、切断されたタイミングで送られてきます。 "type": "update" を受け取ったらクライアントは "type": "update" を送り返す必要があります。

Sora がクライアントへ送る "type": "update" メッセージ

{
    "type": "update",
    "sdp": ".."
}

クライアントから Sora へ送る "type": "update" メッセージ

{
    "type": "update",
    "sdp": ".."
}

"type": "re-offer"

sora.conf にて use_re_offertrue にするか、または DataChannel 機能を有効にした場合、 Sora は "type": "update" の代わりに "type": "re-offer" を送ります。

{
    "type": "re-offer",
    "sdp": ".."
}

"type": "re-answer"

"type": "re-offer" が送られてきた場合、 クライアントから Sora へ送るメッセージは "type": "update" ではなく "type": "re-answer" である必要があります。

{
    "type": "re-answer",
    "sdp": ".."
}

role

マルチストリームでは role に sendrecvsendonlyrecvonly を指定することができます。

  • sendrecv は配信と視聴を行います

  • sendonly は配信のみを行います

  • recvonly は視聴のみを行います

マルチストリームにおける映像ビットレート自動シェアリング機能

重要

マルチストリームではビットレート自動シェアリング機能がデフォルトで有効になっています。

音声のビットレートには影響しません

マルチストリームでは複数の映像を大量に受信するため、 配信側の映像ビットレートを、参加している配信者全員でシェアする機能がデフォルトで有効になっています。

そのため、マルチストリームにおける video の bit_rate は通常の bit_rate とは扱いが異なります。

例えば、bit_rate を 1200 と指定した場合、 2 人で配信している場合はそれぞれ配信に 600kbps ずつ使用します。 ここに 1 人が加わり 3 人になると、 1 人 400kbps ずつ使用して配信するようになります。

また、ここに 5 人が加わり、合計で 8 人になると、 1 人 150kbps ずつ使用して配信するようになります。

配信の合計のビットレートを指定するのが video の bit_rate です。

同じチャネルに参加している人が異なる bit_rate を指定した場合

2 人が参加している状態で 1 人は映像のビットレートを 500 、もう 1 人は 1000 を指定した場合、 Sora では 500 を指定した人は配信に 250kbps を使用し、 1000 を指定した人は配信に 500kbps を使用します。

無効にする場合

無効にするのは推奨しません

sora.confmultistream_auto_sharing_video_bit_ratefalse に指定することで無効にできます。

© Copyright 2021, Shiguredo Inc Created using Sphinx 4.1.1