マルチストリームでサイマルキャスト

警告

マルチストリームでサイマルキャストは実験的機能のため正式版では仕様が変更される可能性があります

概要

マルチストリームを利用した際、配信をサイマルキャストにする機能です。

映像を配信する際、 Sora に対して、 1 つの RTCPeerConnection で複数の画質の映像を送信することにより、 受信者がどの画質の映像を受信するかを選択できるようになります。

SDK 対応状況

要望はそれぞれの Discord チャンネルへお願いします

  • JavaScript SDK

    • 対応済みです

  • iOS SDK

    • 配信は VP8 のみ対応済みです

    • 視聴は H.264 と VP8 に対応済みです

  • Android SDK

    • 配信は VP8 のみ対応済みです

    • 視聴は H.264 と VP8 に対応済みです

配信ブラウザの対応状況

Firefox と Safari は配信に対応していません

配信側は Chrome と Edge の最新バージョンに対応しております。

視聴ブラウザの対応状況

視聴側は Chrome 、 Safari 、 Firefox 、Edge の最新バージョンに対応しております。

映像コーデック

配信時に利用可能な映像コーデックは VP8 と H.264 です。

警告

H.264 での利用はかなり不安定なためおすすめしません

配信側の利用方法

シグナリング開始時に指定が可能です。

シグナリング開始時

シグナリングの "type": "connect" 時に {"simulcast": true} を指定することで、有効になります。 映像コーデックは VP8 または H264 を選択してください。

{
    "type": "connect",
    "role": "sendrecv",
    "channel_id": "sora",
    "video": {"codec_type": "VP8"},
    "multistream": true,
    "simulcast": true
}

画質の種類

Sora では rid ベースのサイマルキャストを低画質、中画質、最高画質の 3 種類の画質に固定しています。ビットレートは動的に割り当てられます。 ビットレートが高画質に足りない場合は低画質と中画質のみが配信されます。

  • 高画質の 1/4 の解像度が中画質

  • 中画質の 1/4 の解像度が低画質

視聴側の利用方法

シグナリング開始時に指定が可能です。

シグナリング開始時

シグナリング "type": "connect" 時に {"simulcast": true} または {"simulcast": {"quality": "low"}} を指定することで、有効になります。

low の部分は middlehigh も指定可能です。

quality を指定しない場合は low が指定されます。この値は sora.confdefault_simulcast_quality で変更可能です。

{
    "type": "connect",
    "role": "recvonly",
    "channel_id": "sora",
    "video": true,
    "multistream": true,
    "simulcast": {"quality": "high"}
}

視聴側の画質変更 API

詳細は サイマルキャスト API をご確認ください

デモ機能

デモを用意してあります、 デモ機能 を有効にしてご使用ください。

ここでは Sora がインストールされているドメインを example.com としています。

Sora にこの機能のサンプルを用意しています。また、今後は JS だけでなく iOS や Android の SDK からこの機能を使えるようにする予定です。

Sora を起動した後に https://example.com/multi_simulcast_sendrecv.html へ接続してみてください。

Chrome では HTTPS が必須なのですか? も合わせて参考にしてください。

その後 https://example.com/multi_simulcast_recvonly.html へ接続してみてください。

後は画質を切り替えてみてください。