Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WebRTCによる低遅延ライブ配信

 WebRTCによる低遅延ライブ配信

Masaki Matsushita

March 08, 2022
Tweet

Other Decks in Technology

Transcript

  1. • HTTPベースのライブ配信
 ◦ 一般的には30秒〜1分程度の遅延が生じる
 ◦ 遅延を数秒程度に小さくする技術もある
 • WebRTCによるライブ配信
 ◦ 1秒未満の遅延を狙うことができる


    • 低遅延ライブ配信のユースケース
 • WebRTCとHTTPベースのライブ配信の違い
 • 大規模な配信を実現するためのアーキテクチャ
 • WebRTCによるライブ配信のメリット・デメリット
 本セッションの概要
 2

  2. HTTPベースのライブ配信技術
 3
 ファイルベースの配信技術
 映像を数秒単位の小さな
 ファイル (セグメント)に分割
 セグメントのダウンロードを
 順次繰り返す
 
 セグメントの


    秒数 x バッファする個数
 で遅延が決まる
 
 (例)
 6秒のセグメントを5個バッファ
 → 30秒程度の遅延
 プレイリスト playlist.m3u8 セグメント1 video001.ts セグメント2 video002.ts セグメント3 video003.ts (2) ダウンロード
 数秒程度
 …
 クライアント (1) セグメント
   一覧を取得

  3. HTTPベースの低遅延ライブ配信技術
 4
 • HTTPベースで低遅延ライブ配信を目指す技術
 ◦ Low-Latency HLS
 ◦ CMAF-ULL
 •

    遅延 ≒ セグメントの秒数 x バッファする個数
 ◦ バッファする個数を減らす
 ◦ セグメントを細かく (短く)する
 ◦ さらに細かい単位に分ける
 (Chunked Transfer Encoding)
 • 遅延を数秒程度まで小さくすることができる

  4. WebRTCによるライブ配信
 5
 • ブラウザでテレビ電話やWeb会議ができる技術
 ◦ RTC = Real-Time Communication
 ◦

    会話が成立するよう低遅延を追求
 • Real-time Transport Protocol (RTP) ベース
 ◦ IP電話やWeb会議で使われている技術
 • 1秒未満の遅延を狙うことができる
 ◦ 数秒程度の遅延でよい場合も余裕が持てる

  5. • 1秒未満の遅延で映像を配信できるプラットフォーム
 • ブラウザで視聴可能
 ◦ アプリのインストールは不要
 ◦ Chrome, Firefox, Safari,

    Edgeに対応
 • アダプティブ・ビットレート (ABR)
 ◦ NWの状況に応じて最適な画質に自動切り替え
 • マルチアングル配信
 ◦ 複数の映像を同期させて配信できる
 Smart vLive
 9

  6. • 配信者の環境について
 ◦ ライブ配信で標準的なRTMPに対応
 ◦ 映像: H.264 音声: AACに対応
 ◦

    OBS、ATEM mini PRO、LiveShell、LiveU
 など主要な配信ソフト・機器に対応
 Smart vLive
 10

  7. 低遅延ライブ配信のユースケース
 12
 • 音楽ライブ・ストリーマー・e-Sports
 ◦ テンポよく双方向のやりとりが可能
 • スポーツ観客向けマルチアングル配信
 ◦ 観客が好きなアングルを選んで鑑賞


    ◦ 目の前の試合から遅れてはいけない
 • オークション・会議・記者会見・セミナー
 ◦ 遅延があると入札や進行に支障がある
 • 同時通訳
 ◦ 専用レシーバーがなくてもスマホで聞ける
 • リアルタイム性や双方向のやりとりが
 必要なケースで活用できる

  8. 低遅延ライブ配信のユースケース
 13
 • 低遅延ってそんなに必要?
 ◦ ニッチなケースでしか使われないと考えていた
 ◦ 作ってみたところ意外と需要があった
 • 企画の内容を踏まえて要件を検討すべき


    ◦ 一方的な配信であれば遅延は問題にならない
 • ライブ配信に遅延があること自体を知らない人も
 ◦ 低遅延でないと成立しない企画であることに
 気づいていないケース
 ◦ 「電話みたいにすぐ届くんじゃないんですか?」
 と言われたことも

  9. システム概要
 14
 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者 ライブ情報

    管理 クラウド基盤 WebRTC 配信サーバ WebRTC 配信サーバ 2段構成の1段目 映像をWebRTC配信サーバへ分配
  10. システム概要
 15
 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者 ライブ情報

    管理 クラウド基盤 WebRTC 配信サーバ WebRTC 配信サーバ 2段構成の2段目 WebRTCで視聴者に配信 2段構成の1段目 映像をWebRTC配信サーバへ分配
  11. システム概要: スケーラビリティ
 16
 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者

    クラウド基盤 WebRTC 配信サーバ WebRTC 配信サーバ WebRTC配信サーバを 増やして視聴者増加に対応 メディアサーバを増やして 同時並行する配信数の増加に対応 ライブ情報 管理
  12. • HTTP
 ◦ 映像ファイルをHTTPで逐次ダウンロード
 ◦ CDNを利用可能
 • WebRTC
 ◦ RTPベースの技術でUDPによる通信


    ◦ 一般的なCDNは利用不可
 → スケーラビリティに課題
 ▪ Smart vLiveでは2段構成を採用
 ◦ ネットワーク要件が特殊
 → 接続性に課題
 HTTPベースのライブ配信との違い
 17

  13. • WebRTCの通信を中継してくれるサーバ
 • UDP・TCP・TLSを利用可能
 • 使用するポートを固定できる
 ◦ FWなどで通信を許可しやすい
 • HTTPプロキシも場合によっては透過可能


    ◦ 負荷については検討が必要
 • 視聴者の数%〜十数%程度がTURN経由
 • それでも通信できない場合も
 → HTTPベースのライブ配信との併用も選択肢
 TURNサーバ
 19

  14. Smart vLiveでのTURNサーバ
 20
 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者

    クラウド基盤 WebRTC 配信サーバ TURN サーバ ライブ情報 管理 TURN TURNサーバを経由させることで TCP/TLS:443など通りやすい プロトコル・ポートを利用できる
  15. • アップロードに用いられるコーデック
 ◦ 映像: H.264 (H.265)
 ◦ 音声: AAC
 •

    WebRTCで利用できる主なコーデック
 ◦ 映像: H.264・VP8・VP9
 ◦ 音声: Opus
 • WebRTCを使ったライブ配信では
 ◦ 映像: H.264
 ◦ 音声: AAC → Opusに再エンコードが必要
 WebRTCによるライブ配信で利用できるコーデック
 21

  16. • HTTP: パケットロスはTCPにより回復
 • WebRTC: 通常はUDPを利用
 ◦ パケットロスへの対処
 ▪ RTPベースの再送

    (RTX)
 ▪ 音声コーデックOpusの誤り訂正 (FEC)
 • 低遅延と安定性はトレードオフ
 ◦ 低遅延を求めれば安定性はある程度犠牲になる
 ◦ それに見合うメリットがあるか
 → 企画段階で十分な検討が必要
 パケットロスへの対処と安定性
 22

  17. • UDPでどうやって再送を行っているのか?
 • RTP Control Protocol (RTCP)
 ◦ RTPを制御するためのプロトコル
 •

    Receiver Reports
 ◦ 受信者が送信者にフィードバックを送る
 • WebRTCで主に用いられるフィードバック
 ◦ NACK
 ▪ パケットロスを検知して再送を要求
 ◦ Picture Loss Indication (PLI)
 ▪ 映像のキーフレーム要求
 ▪ 配信用途では対応が難しい
 WebRTCでの受信者からのフィードバック
 23

  18. • 視聴者のNW環境に応じて最適な画質を配信する
 ◦ 安定した配信には必須の技術
 • HTTPでのABR
 ◦ 複数の画質でセグメントを用意しておく
 ◦ 状況に応じて参照するセグメントを切り替える


    ◦ クライアントが主体
 • WebRTCでのABR
 ◦ 複数の画質でストリームを用意しておく
 ◦ ブラウザ (視聴者)との間で利用可能な帯域を推定
 ◦ 推定した結果に応じて流すストリームを切り替える
 ◦ 配信サーバが主体
 アダプティブビットレート (ABR)
 24

  19. Smart vLiveでのアダプティブ・ビットレート
 25
 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者

    クラウド基盤 WebRTC 配信サーバ WebRTC 配信サーバ 低画質版をクラウド上で リアルタイムに再エンコードして重畳 ライブ情報 管理 推定した帯域に合わせて 最適な画質を配信
  20. • メリット
 ◦ 1秒未満の遅延を狙うことができる
 ◦ RTPベースでありながらブラウザで利用可能
 • デメリット
 ◦ UDPを利用するなどNW要件が特殊


    ▪ 企業NWなどでは視聴できないケースがある
 ◦ 環境によっては安定性の確保が難しい
 ▪ 回線やWiFiが貧弱なケース
 ▪ 低遅延と安定性はトレードオフ
 ◦ 追っかけ再生 (DVR)も難しい
 ◦ 他の技術の併用も選択肢のひとつ
 WebRTCのメリット・デメリット
 26

  21. • WebRTCを用いたライブ配信
 ◦ 1秒未満の遅延を狙うことができる
 • 低遅延ライブ配信のユースケース
 ◦ 双方向のやりとりがある場合
 ◦ リアルタイム性が必要な場合


    • WebRTCによるライブ配信
 ◦ HTTPベースの技術とはかなり異なる
 ◦ 特徴をよく理解して技術選定する必要がある
 • 企画段階での十分な検討が成功につながる
 ◦ 低遅延と安定性はトレードオフ
 まとめ
 27