Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WebRTCによる低遅延ライブ配信
Search
Masaki Matsushita
March 08, 2022
Technology
1
880
WebRTCによる低遅延ライブ配信
Masaki Matsushita
March 08, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
3
310
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
3
2.4k
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
290
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
850
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
490
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
490
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
250
Featured
See All Featured
Navigating Team Friction
lara
183
15k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Side Projects
sachag
452
42k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
How to train your dragon (web standard)
notwaldorf
88
5.7k
How to Ace a Technical Interview
jacobian
276
23k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Being A Developer After 40
akosma
87
590k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
The Language of Interfaces
destraynor
154
24k
Transcript
WebRTCによる低遅延ライブ配信 NTTコミュニケーションズ株式会社 イノベーションセンター テクノロジー部門 松下 正樹
• HTTPベースのライブ配信 ◦ 一般的には30秒〜1分程度の遅延が生じる ◦ 遅延を数秒程度に小さくする技術もある • WebRTCによるライブ配信 ◦ 1秒未満の遅延を狙うことができる
• 低遅延ライブ配信のユースケース • WebRTCとHTTPベースのライブ配信の違い • 大規模な配信を実現するためのアーキテクチャ • WebRTCによるライブ配信のメリット・デメリット 本セッションの概要 2
HTTPベースのライブ配信技術 3 ファイルベースの配信技術 映像を数秒単位の小さな ファイル (セグメント)に分割 セグメントのダウンロードを 順次繰り返す セグメントの
秒数 x バッファする個数 で遅延が決まる (例) 6秒のセグメントを5個バッファ → 30秒程度の遅延 プレイリスト playlist.m3u8 セグメント1 video001.ts セグメント2 video002.ts セグメント3 video003.ts (2) ダウンロード 数秒程度 … クライアント (1) セグメント 一覧を取得
HTTPベースの低遅延ライブ配信技術 4 • HTTPベースで低遅延ライブ配信を目指す技術 ◦ Low-Latency HLS ◦ CMAF-ULL •
遅延 ≒ セグメントの秒数 x バッファする個数 ◦ バッファする個数を減らす ◦ セグメントを細かく (短く)する ◦ さらに細かい単位に分ける (Chunked Transfer Encoding) • 遅延を数秒程度まで小さくすることができる
WebRTCによるライブ配信 5 • ブラウザでテレビ電話やWeb会議ができる技術 ◦ RTC = Real-Time Communication ◦
会話が成立するよう低遅延を追求 • Real-time Transport Protocol (RTP) ベース ◦ IP電話やWeb会議で使われている技術 • 1秒未満の遅延を狙うことができる ◦ 数秒程度の遅延でよい場合も余裕が持てる
• 2013年よりWebRTCプラットフォームSkyWayを 開発者向けにトライアル提供 ◦ 通話やWeb会議などを簡単に実現できる • 2017年より商用サービス提供開始 • 15,000のアプリ、14,000名の開発者、 80万人のユーザーがSkyWayを利用
(2020年10月現在) 弊社のWebRTCへの取り組み 6
SkyWayの活用事例 7
• SkyWayを配信用途で検討いただくケースが増加 • SkyWayでは数十人程度への配信が限界 ◦ あくまで通話や会議を想定 • 配信に特化したシステムとしてSmart vLiveを開発 ◦
数〜数十万人規模の配信に対応 ◦ ライブ配信用の機器・ソフトに対応 低遅延ライブ配信に取り組む経緯 8
• 1秒未満の遅延で映像を配信できるプラットフォーム • ブラウザで視聴可能 ◦ アプリのインストールは不要 ◦ Chrome, Firefox, Safari,
Edgeに対応 • アダプティブ・ビットレート (ABR) ◦ NWの状況に応じて最適な画質に自動切り替え • マルチアングル配信 ◦ 複数の映像を同期させて配信できる Smart vLive 9
• 配信者の環境について ◦ ライブ配信で標準的なRTMPに対応 ◦ 映像: H.264 音声: AACに対応 ◦
OBS、ATEM mini PRO、LiveShell、LiveU など主要な配信ソフト・機器に対応 Smart vLive 10
• 東京ドーム・巨人戦でのマルチアングル配信技術実証 • サンボマスター 真 感謝祭 ~ホール&レスポンス~ • Interop 2021
ShowNetステージ など 主な実績 11
低遅延ライブ配信のユースケース 12 • 音楽ライブ・ストリーマー・e-Sports ◦ テンポよく双方向のやりとりが可能 • スポーツ観客向けマルチアングル配信 ◦ 観客が好きなアングルを選んで鑑賞
◦ 目の前の試合から遅れてはいけない • オークション・会議・記者会見・セミナー ◦ 遅延があると入札や進行に支障がある • 同時通訳 ◦ 専用レシーバーがなくてもスマホで聞ける • リアルタイム性や双方向のやりとりが 必要なケースで活用できる
低遅延ライブ配信のユースケース 13 • 低遅延ってそんなに必要? ◦ ニッチなケースでしか使われないと考えていた ◦ 作ってみたところ意外と需要があった • 企画の内容を踏まえて要件を検討すべき
◦ 一方的な配信であれば遅延は問題にならない • ライブ配信に遅延があること自体を知らない人も ◦ 低遅延でないと成立しない企画であることに 気づいていないケース ◦ 「電話みたいにすぐ届くんじゃないんですか?」 と言われたことも
システム概要 14 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者 ライブ情報
管理 クラウド基盤 WebRTC 配信サーバ WebRTC 配信サーバ 2段構成の1段目 映像をWebRTC配信サーバへ分配
システム概要 15 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者 ライブ情報
管理 クラウド基盤 WebRTC 配信サーバ WebRTC 配信サーバ 2段構成の2段目 WebRTCで視聴者に配信 2段構成の1段目 映像をWebRTC配信サーバへ分配
システム概要: スケーラビリティ 16 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者
クラウド基盤 WebRTC 配信サーバ WebRTC 配信サーバ WebRTC配信サーバを 増やして視聴者増加に対応 メディアサーバを増やして 同時並行する配信数の増加に対応 ライブ情報 管理
• HTTP ◦ 映像ファイルをHTTPで逐次ダウンロード ◦ CDNを利用可能 • WebRTC ◦ RTPベースの技術でUDPによる通信
◦ 一般的なCDNは利用不可 → スケーラビリティに課題 ▪ Smart vLiveでは2段構成を採用 ◦ ネットワーク要件が特殊 → 接続性に課題 HTTPベースのライブ配信との違い 17
• UDPで広い範囲から選択したポートを使用 • 一般家庭の環境では問題ないことが多い • 企業や学校などの環境で課題 ◦ 通信できるポートを制限している場合は 直接の通信は難しい •
通信を中継して接続性を高める ◦ TURNサーバ WebRTCによるライブ配信のネットワーク要件 18
• WebRTCの通信を中継してくれるサーバ • UDP・TCP・TLSを利用可能 • 使用するポートを固定できる ◦ FWなどで通信を許可しやすい • HTTPプロキシも場合によっては透過可能
◦ 負荷については検討が必要 • 視聴者の数%〜十数%程度がTURN経由 • それでも通信できない場合も → HTTPベースのライブ配信との併用も選択肢 TURNサーバ 19
Smart vLiveでのTURNサーバ 20 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者
クラウド基盤 WebRTC 配信サーバ TURN サーバ ライブ情報 管理 TURN TURNサーバを経由させることで TCP/TLS:443など通りやすい プロトコル・ポートを利用できる
• アップロードに用いられるコーデック ◦ 映像: H.264 (H.265) ◦ 音声: AAC •
WebRTCで利用できる主なコーデック ◦ 映像: H.264・VP8・VP9 ◦ 音声: Opus • WebRTCを使ったライブ配信では ◦ 映像: H.264 ◦ 音声: AAC → Opusに再エンコードが必要 WebRTCによるライブ配信で利用できるコーデック 21
• HTTP: パケットロスはTCPにより回復 • WebRTC: 通常はUDPを利用 ◦ パケットロスへの対処 ▪ RTPベースの再送
(RTX) ▪ 音声コーデックOpusの誤り訂正 (FEC) • 低遅延と安定性はトレードオフ ◦ 低遅延を求めれば安定性はある程度犠牲になる ◦ それに見合うメリットがあるか → 企画段階で十分な検討が必要 パケットロスへの対処と安定性 22
• UDPでどうやって再送を行っているのか? • RTP Control Protocol (RTCP) ◦ RTPを制御するためのプロトコル •
Receiver Reports ◦ 受信者が送信者にフィードバックを送る • WebRTCで主に用いられるフィードバック ◦ NACK ▪ パケットロスを検知して再送を要求 ◦ Picture Loss Indication (PLI) ▪ 映像のキーフレーム要求 ▪ 配信用途では対応が難しい WebRTCでの受信者からのフィードバック 23
• 視聴者のNW環境に応じて最適な画質を配信する ◦ 安定した配信には必須の技術 • HTTPでのABR ◦ 複数の画質でセグメントを用意しておく ◦ 状況に応じて参照するセグメントを切り替える
◦ クライアントが主体 • WebRTCでのABR ◦ 複数の画質でストリームを用意しておく ◦ ブラウザ (視聴者)との間で利用可能な帯域を推定 ◦ 推定した結果に応じて流すストリームを切り替える ◦ 配信サーバが主体 アダプティブビットレート (ABR) 24
Smart vLiveでのアダプティブ・ビットレート 25 メディアサー バ APIサーバ 配信者 RTMP WebRTC 視聴者
クラウド基盤 WebRTC 配信サーバ WebRTC 配信サーバ 低画質版をクラウド上で リアルタイムに再エンコードして重畳 ライブ情報 管理 推定した帯域に合わせて 最適な画質を配信
• メリット ◦ 1秒未満の遅延を狙うことができる ◦ RTPベースでありながらブラウザで利用可能 • デメリット ◦ UDPを利用するなどNW要件が特殊
▪ 企業NWなどでは視聴できないケースがある ◦ 環境によっては安定性の確保が難しい ▪ 回線やWiFiが貧弱なケース ▪ 低遅延と安定性はトレードオフ ◦ 追っかけ再生 (DVR)も難しい ◦ 他の技術の併用も選択肢のひとつ WebRTCのメリット・デメリット 26
• WebRTCを用いたライブ配信 ◦ 1秒未満の遅延を狙うことができる • 低遅延ライブ配信のユースケース ◦ 双方向のやりとりがある場合 ◦ リアルタイム性が必要な場合
• WebRTCによるライブ配信 ◦ HTTPベースの技術とはかなり異なる ◦ 特徴をよく理解して技術選定する必要がある • 企画段階での十分な検討が成功につながる ◦ 低遅延と安定性はトレードオフ まとめ 27