質問・問題
Dual Streamの使い方や仕様について教えてください。
回答・解決方法
Dual Streamとは、受信側のネットワーク状況などの条件に応じて選択できるよう、送信側にて高画質と低画質の2つのビデオストリームを送信できるモードのことです。(DualStreamモードと呼びます)
これを用いて高画質と低画質をうまく使い分けることで、クライアント環境における問題(デバイス負荷やネットワークパフォーマンスが良くないため発生する映像の遅延や切断など)を改善することができます。
DualStreamでできること
- 高画質、低画質の切り替え
- 受信側映像の解像度を高画質から低画質、又はその逆に切り替えることができます。
- フォールバックによる自動切り替え
- フォールバックを設定することにより、受信側映像の高画質、低画質を自動的に切り替えます。
- LOW_STREAMモード:ネットーワーク状況が良くない場合、自動的に低画質に切り替えます。
- AUDIO_ONLYモード:低画質に切り替わった後、ネットーワーク状況がさらに良くない場合、最低限音声だけでも通話できるように音声モードに切り替えます。
- DualStreamは画面共有には対応していません。
DualStreamの用途
以下のようなケースで利用されることが多いです。
- 様々なデバイス(PC、スマホ、タブレット)で通話するケース
- クライアント環境に合わせて受信側映像の高画質、低画質を選択します。
- ネットワーク環境が厳しいクライアント環境のケース
- フォールバックを設定して、ネットワーク環境が厳しい場合は自動的に受信側映像を低画質に切替えます。
- デバイス負荷により映像や音声品質が良くない(映像遅延やノイズが出るなど)ケース
- 負荷のあるクライアント環境に対し、受信側映像を低画質に設定します。
DualStreamの対応ブラウザ
デバイス毎のDualStreamのブラウザ対応表です。(2021/09時点)
(v4.7.0よりSafariがDualStreamに対応可能になりました。)
DualStreamのAPI
4.x API
API名 |
説明 |
enableDualStream | DualStreamを有効にします。 |
setLowStreamParameter | 低画質を定義します。 ※デフォルト値はwidth: 160、height: 120、framerate: 15、bitrate: 50kbps |
setRemoteVideoStreamtype | 低画質、高画質を切り替えます。 |
setStreamFallbackOption | フォールバックを設定します。 ※切替条件は非公開 |
disableDualStream | DualStreamを無効にします。 |
setRemoteDefaultVideoStreamType | 全てのリモート拠点に対してストリームタイプ(低画質、高画質)を設定します。 |
※高画質はcreateCameraVideoTrackで設定します。詳細は以下リンク先 「Web」を選択し「Implement features to ensure quality」をご覧ください:
[その他]
・getRemoteVideoStats:受信側の映像情報を取得します。
高画質、低画質時の解像度を確認するには、receiveResolutionHeight、receiveResolutionWidthを利用します。