サイマルキャスト機能

警告

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

概要

サイマルキャスト (Simulcast) は配信時に一つの RTCPeerConnection から複数の画質の映像を配信する技術です。

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

注意

サイマルキャストの仕様

libwebrtc にハードコードされています。

https://chromium.googlesource.com/external/webrtc/+/master/media/engine/simulcast.cc#80

SDK 対応状況

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

  • 最新版の JavaScript SDK

    • 対応済みです

  • 最新版の iOS SDK

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

  • 最新版の Android SDK

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

配信ブラウザの対応状況

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

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

視聴ブラウザの対応状況

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

映像コーデック

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

警告

H.264 での利用は不安定な上、パケロスや遅延に弱すぎるためおすすめしません

非対応機能

以下はすべて今後対応予定です

  • RTP 転送機能には対応しておりません

  • 録画機能には対応しておりません

  • RTX 機能には対応しておりません

  • ULPFEC 機能には対応しておりません

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

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

配信側の利用方法

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

シグナリング開始時

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

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

画質の種類

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

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

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

視聴側の利用方法

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

シグナリング開始時

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

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

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

映像コーデックは VP8 または H264 を選択してください。

{
    "type": "connect":,
    "role": "recvonly",
    "channel_id": "sora",
    "video": {"codec_type": "VP8"},
    "simulcast": {"quality": "high"}
}

視聴側の画質変更 API

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

デモ機能

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

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

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

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

Sora を起動した後に Chrome で https://example.com/simulcast_sendonly.html を開いて、接続してみてください。

その後、もう一つ別のタブで https://example.com/simulcast_recvonly.html を開いて、接続してみてください。

後は simulcast_recvonly.html 側で画質を切り替えてみてください。