プレイアウト遅延機能¶
注意
この機能を利用する場合は事前にサポートまでご連絡ください
警告
この機能は 実験的機能 のため、正式版では仕様が変更される可能性があります
概要¶
プレイアウト遅延機能は映像フレームを視聴側がどれくらい早く再生する必要があるかどうかを配信側で指定する仕組みです。
WebRTC はレイテンシーを優先する仕組みですが、 プレイアウト遅延機能を利用することで、再生までの間にバッファを持たせる事ができるようになります。 これにより、映像の安定性を向上させることができます。
また、リップシンクなどを諦めてとにかく映像の低遅延化を優先する事もできるようになります。
注意¶
この機能はベストエフォートです。視聴側は、可能な限り配信側が指定した範囲内に収まるように映像を再生するように努力しますが、 ネットワークの状況によっては、指定した範囲外で再生されることがあります。
仕組み¶
- URL:
https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/rtp-hdrext/playout-delay
RTP ヘッダー拡張の playout-delay
を利用して実現しています。
注意¶
Sora でプレイアウト遅延機能を利用する場合、配信側で RTP ヘッダー拡張を指定するわけではなく、 Sora が視聴側へ配信するタイミングで指定された値の RTP ヘッダー拡張を付与して配信します。
設定¶
プレイアウト遅延では視聴側の再生遅延の最小値と最大値を指定できます。 指定できる範囲は 0 ミリ秒から 40950 ミリ秒の間です。
利用方法¶
プレイアウト遅延機能は rtp_hdrext_playout_delay が true
である必要があります。
rtp_hdrext_playout_delay はデフォルトで true
です。
sora.conf でのデフォルト値での指定¶
全ての接続のデフォルト値を指定したい場合、 sora.conf にて default_playout_delay_min_delay と default_playout_delay_max_delay を指定してください。
認証成功時の指定¶
もしコネクション単位でプレイアウト遅延を指定したい場合、
認証成功時に playout_delay_min_delay
と playout_delay_max_delay
を指定してください。
詳細は playout_delay_min_delay と playout_delay_max_delay の払い出し をご確認ください。
設定例¶
実際には環境に合わせて調整してください
オーディオのないリモートデスクトップ¶
- min_delay:
0 ms
- max_delay:
0 ms
リモートデスクトップはできるだけ早く再生したいことが多いため、 プレイアウト遅延を 0 に設定することをお勧めします。
注釈
とにかく低遅延で映像を表示したい場合の設定です。
ミーティング¶
双方向
- min_delay:
100 ms
- max_delay:
200 ms
ミーティングは少しの遅延が存在しても、問題ない場合が多いため、100 ミリ秒の遅延を設定することをお勧めします。
ビデオストリーミング¶
- min_delay:
400 ms
- max_delay:
1000 ms
一方向のビデオストリーミングでは、低遅延で配信しつつも、映像が止まったり乱れたりする事を防ぐために、 400 ミリ秒の遅延を設定することをお勧めします。