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
動画配信の技術について/株式会社PLAY
Search
PLAY, inc.
July 14, 2025
Technology
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
動画配信の技術について/株式会社PLAY
PLAY, inc.
July 14, 2025
More Decks by PLAY, inc.
See All by PLAY, inc.
配信した動画が視聴者に 届くまでの技術を知ろう!
play_inc
0
75
非同期・イベント駆動処理の分散トレーシングの繋げ方
play_inc
0
34
LLM時代のリファクタリング戦略_AIエージェントによる段階的・安全なTS移行方法
play_inc
1
2.6k
市場特性に応じたマルチプロダクト戦略と持続的な成長を支える組織デザイン
play_inc
0
3.8k
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
740
会社説明資料/株式会社PLAY
play_inc
0
63k
【URL移行】会社紹介資料/株式会社PLAY
play_inc
0
2.1k
秒間数十万件のデータをリアルタイムに処理するデータ分析基盤の裏側
play_inc
0
59
Other Decks in Technology
See All in Technology
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
120
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
320
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
660
AndroidでHDRメディアを「壊さずに」扱う
chigichan24
0
350
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
490
JAWS-UG初心者支部#88わいわい初心塾(夏休みの宿題やったかGit編)
otsuki
0
110
はじめてのDatabricks:技術者向けワークショップ / beginner-workshop
databricksjapan
PRO
0
140
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
2
2k
[RSJ26] NarrativeFlow: Flow-Based Vision-Language-Action Model Using Robot Velocity Fields
keio_smilab
PRO
0
140
Level Up Your CDK DX: 5 Tools I’ve Been Building
gotok365
2
180
書籍『生成AIの安全性入門』の入門
wataoka
0
200
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
130
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Why Our Code Smells
bkeepers
PRO
340
58k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
680
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Ruling the World: When Life Gets Gamed
codingconduct
0
320
Mind Mapping
helmedeiros
PRO
1
340
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Statistics for Hackers
jakevdp
799
230k
Transcript
動画配信の技術について
⽬次 • 動画とは? • 動画配信の技術 • 動画配信の技術:HLSとは? • 映像コーデック •
⾳声コーデック • 字幕 • 暗号化‧権利保護 • 配信プロトコルの新潮流 • 打ち上げプロトコルの新潮流 2
動画とは? 3
動画とは? • 動画: コンテナ + コーデック の組み合わせ ◦ コンテナ: コーデックを多重化する⽅式のこと
◦ コーデック: 映像や⾳声を圧縮する⽅式のこと コーデック 映像 ⾳声 コンテナ MPEG-TS MP4 (ISOBMFF) FLV … AVC (H.264) AAC … HEVC (H.265) 多重化 4
動画とは? ─ コンテナ • コンテナ: コーデックを多重化する⽅式のこと ◦ MPEG-TS (H.222: ISO/IEC
13818-1) ▪ エラーに強く、放送⽤途で使われます ▪ HLSで採⽤されています ◦ MP4 (ISOBMFF: ISO/IEC 14496-12) ▪ 効率的で、蓄積再⽣⽤途で使われてます ▪ CMAF(fMP4)という形でDASH/HLSで採⽤されています ◦ FLV ▪ RTMPの内部で使われています ▪ 映像と⾳声それぞれ1つだけしか⼊れられません 5
動画とは? ─ コーデック • コーデック: 映像や⾳声を圧縮する⽅式のこと ◦ 映像コーデック ▪ H.262
(MPEG2), H.264 (AVC), H.265 (HEVC), AV1, … ▪ 新しいコーデックは圧縮率が⾼い → 低ビットレートで⾼画質に! ◦ ⾳声コーデック ▪ MP3, AAC, Opus, flac, AC-3, EC-3, … ▪ コーデックによって量⼦化ビット数や圧縮率などが変わります ◦ 動画配信では H.264/AAC がデファクトスタンダードです 6
動画とは? ─ 動画のパラメータ • 動画のパラメータ ◦ よく以下のキーワードを⾒ますよね? ▪ 解像度: HD,
Full HD, QHD, 4K UHD, … ▪ ビットレート: 1Mbps, 4Mbps, 10Mbps, … ▪ フレームレート: 30FPS, 29.97FPS, … ▪ フレームレート種別: CFR, VFR ▪ キーフレーム間隔: 1秒, 2秒, … ◦ これらのパラメータについて、説明します 7
動画とは? ─ 解像度 • 解像度: 横画素数 × 縦画素数 のこと ◦
⼤きいほどシャープになりクッキリします ◦ 解像度の種類 ▪ ソース解像度: 元の動画の解像度のこと ▪ 表⽰解像度: プレイヤーの解像度のこと ◦ ソース解像度 ≠ 表⽰解像度の場合... ▪ アップスケーリング/ダウンスケーリングして合わせます ▪ ⼤体はリニア補間でスケーリングします ▪ AIでスケーリングする技術もあります (NVIDIA VSR など...) 8
動画とは? ─ ビットレート • ビットレート: 単位時間あたりのデータ量のこと ◦ 単位は bps (bit
per second) ◦ CBR: 固定ビットレート ◦ VBR: 可変ビットレート ▪ ABR → 平均ビットレートを⼀定に保つ ▪ CQP → 量⼦化パラメータを固定 ▪ CRF → 品質を固定 ◦ 何を使うか: ⽤途によります ▪ VOD配信: 主に ABR が使われます ▪ ライブ配信: 主に CBR が好まれます 9
動画とは? ─ フレームレート • フレームレート: 単位時間あたりのフレーム数のこと ◦ 単位は FPS (Frames
Per Sec) ◦ よく使うフレームレート ▪ 30 FPS, 60 FPS: デファクトのフレームレート ▪ 29.97 FPS, 59.94 FPS: (NTSC) ⽇本や北⽶の放送のフレームレート • 正確には 30000/1001 FPS, 60000/1001 FPS です ▪ 25 FPS, 50FPS: (PAL) 欧州のテレビのフレームレート ▪ 24 FPS: 映画系でよく使われる ▪ 23.976 FPS: 24FPS を NTSC のように変更したもの • 正確には 24000/1001 FPS です ◦ 動画配信では、だいたい 30 FPS か 29.97 FPS を利⽤します 10
動画とは? ─ フレームレート種別 • フレームレート種別 ◦ CFR: 固定フレームレート ◦ VFR:
可変フレームレート ◦ 動画配信では CFR (固定フレームレート) を使います 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 CFR VFR 11
動画とは? ─ キーフレーム間隔 • キーフレーム ◦ シークの起点となるフレームのこと ◦ I(Intra)フレームと呼ぶことも多いです •
キーフレーム間隔 ◦ キーフレームが挿⼊される間隔のこと ▪ シーク時の再⽣の起点、動画の分割点になります B P B P … … B P B P I I I ここから 再⽣可能 ここから 再⽣可能 ここから 再⽣可能 12
動画配信の技術 13
• 動画配信の流れ ◦ 映像‧⾳声はOVPにより配信⽤途へ変換され、視聴者に届きます ▪ OVP (Online Video Platform): 動画配信プラットフォームのこと
CDN 動画配信の技術 ─ 動画配信の流れ 映像 ⾳声 配信ソフト エンコード エンコード 多重化 OVP (Online Video Platform) パッケージング 打ち上げ 視聴者 配信 トランスコード 14
• AWSのマネージドサービスでは... ◦ VOD配信の場合 OVP (Online Video Platform) 動画配信の技術 ─
動画配信の流れ Amazon CloudFront Amazon S3 視聴者 配信したい動画 CDN オリジン S3 + CloudFront マネージドサービスで構成 ⼤規模配信の負荷を捌く MP4 MediaConvert ファイルをトランスコード、パッケージング 出来たファイルを S3 に配置 トランスコード‧パッケージング HLS / MPEG-DASH AWS Elemental MediaConvert 15
• AWSのマネージドサービスでは... ◦ ライブ配信の場合 OVP (Online Video Platform) 動画配信の技術 ─
動画配信の流れ AWS Elemental MediaLive Amazon CloudFront 視聴者 配信ソフト CDN Amazon S3 オリジン S3 + CloudFront マネージドサービスで構成 ⼤規模配信の負荷を捌く MediaLive ライブエンコード、パッケージング 出来たファイルを S3 に配置 RTMP トランスコード‧パッケージング HLS / MPEG-DASH 16
• 動画配信の技術は階層的に構成されてます ◦ 上位レイヤーが下位レイヤーを利⽤します ▪ 配信(配信プロトコル) → 多重化(コンテナ) → 圧縮(コーデック)
動画配信の技術 ─ 技術スタック 配信プロトコル HLS MPEG-DASH RTMP … コンテナ MPEG-TS MP4 (ISOBMFF) FLV … コーデック AVC (H.264) AAC … HEVC (H.265) 映像 ⾳声 17
• 動画配信の技術は階層的に構成されてます ◦ 上位レイヤーが下位レイヤーを利⽤します ▪ 配信(配信プロトコル) → 多重化(コンテナ) → 圧縮(コーデック)
◦ H.264/AAC を HLS (MPEG-TS) で配信する場合... コーデック 映像 ⾳声 動画配信の技術 ─ 技術スタック 配信プロトコル HLS コンテナ MPEG-TS AVC (H.264) AAC 18
動画配信の技術 ─ 配信プロトコル • 配信プロトコル: 動画を視聴者に配信する⽅式のこと ◦ HLS: RFC 8216
▪ Apple策定の配信プロトコル ▪ 動画配信のデファクトスタンダードです ◦ MPEG-DASH: ISO/IEC 23009-1 ▪ ISO/IEC策定(国際標準規格)の配信プロトコル ▪ DRM要件がある場合に利⽤する事が多いです ◦ RTMP ▪ Adobe策定の配信プロトコル ▪ 2010年の頃の動画配信といえばこれ! 19
• トランスコード: 再エンコードすること ◦ 動画配信では 配信に適するように変換する 場合に使います ▪ 解像度を調整、複数のビットレートの準備、... コンテナA
から Demux コンテナB へ Mux 再エンコード 動画配信の技術 ─ トランスコード コンテナA ⾳声A 映像A ⾳声A 映像A ⾳声A’ 映像A’ コンテナB ⾳声A’ 映像A’ 20
動画配信の技術 ─ パッケージング • パッケージング: 配信プロトコルに適合させること ◦ 配信に適した形式に変換してから配信します ▪ HLS,
MPEG-DASH などの HTTPベースの配信プロトコル で必要になります ◦ パッケージングでおこなう処理 ▪ セグメント化: 流れてくる動画を⼀定範囲で区切ります ▪ コンテナ変換: セグメントのコンテナを変更します ▪ DRM処理: 権利保護のために暗号化します ◦ CDNで効率的に配信可能な形に変換して配信します 21
動画配信の技術 ─ CDN • CDN: Contents Delivery Network ◦ コンテンツを配信するためのネットワーク網のこと
◦ 現代のCDNは以下の特徴を持ちます ▪ HTTPのキャッシュサーバとして働き、オリジンを保護する ▪ クライアントからの⼤量のリクエストを捌く ▪ ⼤量のデータ(動画)を効率的にクライアントへ伝送する ◦ 動画配信において、無くてはならない存在です 22
動画配信の技術 ─ 配信形態 • 配信形態: どのように配信するか? ◦ VOD配信: 静的な動画を配信すること ▪
AVOD: 広告付きVOD配信のこと ▪ SVOD: サブスクVOD配信のこと ▪ TVOD: レンタル型のVOD配信のこと ◦ ライブ配信: ライブの動画 (ストリーム) を配信すること ▪ DVR再⽣(追いかけ再⽣): 巻き戻れるライブ配信のこと ▪ 擬似ライブ: VODをライブのように配信すること 23
動画配信の技術:HLSとは? 24
• HLS (HTTP Live Streaming) ◦ Apple が策定した HTTPベースの配信プロトコル です
◦ セグメントとプレイリストで構成されます ▪ セグメント: 動画ファイルを分割したもの ▪ プレイリスト: 動画を構成するセグメントのリンクの⼀覧 ◦ 再⽣の流れ ▪ プレイリスト をHTTPでGETします ▪ プレイリストの内容にある セグメント をHTTPでGETします ▪ 再⽣バッファが貯まったら、再⽣開始します 動画配信の技術 ─ HLS (HTTP Live Streaming) 25
• HLS (HTTP Live Streaming) ◦ プレイリストとセグメントの関係 SD HD Audio
動画配信の技術 ─ HLS (HTTP Live Streaming) Media Playlist Segment Segment Segment Segment Multivariant Playlist Media Playlist Segment Segment Segment Segment Media Playlist Segment Segment Segment Segment プレイヤー 26
動画配信の技術 ─ HLS (HTTP Live Streaming) • HLS (HTTP Live
Streaming) ◦ プレイリストの中⾝ ▪ # から始まる⾏: プレイリストのタグ(メタデータ) • タグについては テックブログ を参照ください ▪ 通常の⾏: リンク(URL) #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:5 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:4.004, https:-/www.example.com/manifest_1_1.ts #EXTINF:4.004, https:-/www.example.com/manifest_1_2.ts #EXTINF:4.004, https:-/www.example.com/manifest_1_3.ts Media Playlist #EXTM3U #EXT-X-VERSION:3 #EXT-X-STREAM-INF:BANDWIDTH=1091244 https:-/www.example.com/manifest_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2382397 https:-/www.example.com/manifest_2.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=3859904 https:-/www.example.com/manifest_3.m3u8 Multivariant Playlist 27
映像コーデック 28
映像コーデック ─ 符号化タイプ • 符号化タイプ (ピクチャタイプ) ◦ I, P, B
の 3つのタイプがあります ▪ I(Intra): 単体で完結する画像 ▪ P(Predictive): 直近の過去からの差分画像 ▪ B(Bi-directional predictive): 直近の過去+未来からの差分画像 I I P B B 29
映像コーデック ─ GOP • GOP: Group Of Pictures ◦ キーフレームと参照フレームをグルーピングした単位のこと
◦ GOP 間隔: 必ずキーフレーム が⼊るフレーム数 (キーフレーム間隔) ◦ 構成により Closed GOP と Open GOP がある ◦ 動画配信では Closed GOP を使います! I B P B P P I … … Closed GOP B I B P P P B … … Open GOP GOP内で参照が完結 GOPをまたぐ参照がある 30
映像コーデック ─ スキャンタイプ • スキャンタイプ ◦ プログレッシブ: 1つのフレームをそのまま送る⽅式 ◦ インターレース:
1つのフレームを奇数⾏/偶数⾏で分けて送る⽅式 ◦ 動画配信ではプログレッシブを使います! 1 2 3 4 プログレッシブ 1 3 2 4 インターレース 31
映像コーデック ─ タイムコード表記 • タイムコード表記 ◦ NDF: ノンドロップフレーム(00:01:00:00) → フレーム数そのまま
◦ DF: ドロップフレーム (00:01:00;02) → ⾮10の倍数分で2F(4F)⾶ぶ ▪ 理由: 60秒 * 30 - 60秒 * 29.97 = 1.8F → 2F - 0.2F = +2F(1分毎), -2F(10分毎) ※ 10 分毎に相殺され ±0F になる ▪ DF の場合はフレームの区切りを ; と表記するのが⼀般的 ◦ DF は 29.97 FPS, 59.94 FPS で使えるタイムコード表記法 ▪ 29.97 FPS, 59.94 FPS = DF という訳ではない (NDF 表記の場合もある) • タイムコードが DF だと経過時間と対応するため DF が多いが ▪ 23.976 FPS では DF のタイムコードはなく NDF のみ 32
⾳声コーデック 33
⾳声コーデック ─ サンプリングレート • サンプリングレート (標本化周波数) ◦ ⾳声をサンプリング(標本化)する間隔のこと ▪ サンプリングレートが⾼いほど、⾳質は上がる
◦ よく使うサンプリングレート ▪ 96000Hz: ハイレゾ配信 で利⽤される ▪ 48000Hz: 放送, 配信 で利⽤される ▪ 44100Hz: CD などの⾳楽系で利⽤される 34
⾳声コーデック ─ 量⼦化ビット数 • 量⼦化ビット数 (ビット深度) ◦ ⾳声を記録する(量⼦化)ビット数のこと ▪ 量⼦化ビット数が⾼いほど、⾳質は上がる
◦ コーデックによって量⼦化ビット数に上限があります ▪ MP3, AAC: 16bit のみ対応 ▪ flac: 24bit (1.4.0 から 32bit) まで可 35
⾳声コーデック ─ リニアPCM (Linear PCM) • リニアPCM: Linear PCM ◦
⾮圧縮の⾳声コーデック ▪ 単なる⾳声のデータ(bit列)のみ ▪ パラメータは外部から指定する • サンプリングレート, 量⼦化ビット数, チャンネル数 … ◦ コンテナの対応がちょっと微妙... ▪ FLV: 8bit, 16bit 深度で モノラル,ステレオ のみ対応 ▪ ISOBMFF: ISO/IEC 23003-5:2020 で対応 (再⽣互換性に難あり...) ▪ MOV: デフォルト対応 ▪ MPEG-TS: BDAVの拡張で対応 36
⾳声コーデック ─ MDCT (修正離散コサイン変換) • MDCT: 修正離散コサイン変換 ◦ MP3, AAC
で使われている周波数領域への変換⽅法 ◦ MDCTの特徴 ▪ エンコード: ブロックをオーバーラップ(重複)させつつ変換 • ブロック境界のノイズを回避するため ▪ デコード: 窓関数を使ってクロスフェード (TDAC) • 常にクロスフェードするため、無劣化のカット編集はできない ▪ オーバーラップさせるが、変換後のデータ量は元と同じ ◦ 効果的な計算⽅法 ▪ ⾼速に計算可能な FFT に帰着して計算する ▪ DCT-IV → DCT-II に帰着して、FFT の要領で DCT-II を計算する 37
字幕 38
• SRT: SubRip Text ◦ SubRip というソフトウェアの字幕フォーマット ▪ 拡張⼦は “.srt”
◦ ⾮常に単純なため、多くのプレイヤーがサポートしている ▪ どれくらい単純かというと... 1 00:20:41,150 --> 00:20:45,109 字幕1行目 字幕2行目 2 00:21:34,567 --> 00:21:45,678 次の字幕 Wikipedia より引用 字幕 ─ SRT (SubRip Text) 39
字幕 ─ WebVTT (Web Video Text Tracks) • WebVTT: Web
Video Text Tracks ◦ W3Cが策定したWeb配信向け字幕フォーマット ▪ 拡張⼦は “.vtt” ◦ SRTをベースに拡張を加えたもの ▪ 元々は WebSRT という名前だった ▪ SRTと同じく多数のプレイヤーがサポートしている WEBVTT 00:20:41.150 --> 00:20:45.109 字幕1行目 字幕2行目 00:21:34.567 --> 00:21:45.678 次の字幕 Wikipedia より引用 40
字幕 ─ TTML (Timed Text Markup Language) • TTML: Timed
Text Markup Language ◦ W3Cが策定した字幕の記述のためのマークアップ⾔語 ▪ HTMLのようなXMLで字幕を記述する ◦ TTMLは制作のためのフォーマット ▪ 字幕のユニバーサルな記法を作ることが⽬的 ▪ 広く字幕を提供する⽬的で作られたWebVTTとは対照的 ◦ 配信する際には IMSC や WebVTT に変換する ▪ IMSC は Web配信向けに機能を絞ったTTMLのサブセットのこと ▪ TTML → WebVTT の変換では WebVTT の表現できる範囲にコンバートする 41
字幕 ─ IMSC (Internet Media Subtitles and Captions) • IMSC:
Internet Media Subtitles and Captions ◦ Web配信向けのTTMLのサブセット ▪ IMSC Text Profile: テキスト字幕 ▪ IMSC Image Profile: 画像字幕 ◦ TTMLは機能が多く、配信には使いづらい ▪ TTMLの全ての機能を対応するのは⾮常に難しい ▪ 負担軽減のため、機能制限したサブセットで運⽤ ◦ WebVTTの⽅が広く利⽤されている... ▪ HLS では IMSC Image Profile は利⽤不可 ▪ WebVTTでも最低限の表現は可能 42
字幕 ─ Lambda字幕 (Videotron Lambda) • Lambda字幕 (Videotron Lambda) ◦
映画などの字幕の制作現場で流通している形式 ▪ 拡張⼦は “.cap” ◦ Lambda字幕は制作ソフトのフォーマット ▪ プロプライエタリなフォーマットで仕様も⾮公開 ▪ 元々の会社は字幕事業から撤退している ▪ 外部から経緯が分からない謎フォーマットに... ◦ ⽇本語字幕で必要な機能が全て揃っている ▪ ルビ, 縦中横, 中頭寄せ, … ▪ ⼤体の字幕制作ソフトはLambda字幕にエクスポート可能 43
字幕 ─ サイドカー字幕 • サイドカー字幕 ◦ 字幕を動画とは別のソースとして⽤意する⽅式 ▪ 基本的に1ファイルで全部の字幕を載せる ▪
例: HTML の track要素 で vttファイル を読ませる ◦ VOD配信でよく使われる ▪ 利点: 字幕をセグメント化しなくてよい ▪ ⽋点: ⼀括読み込みで量が多いと負荷がかかる ◦ 配信プロトコルによってサポートがまちまち… ▪ MPEG-DASH: 規格化されている ▪ HLS: 規格化されてない (⾮標準) 44
字幕 ─ 強制字幕 • 強制字幕 (FN字幕) ◦ FN: Forced Narratives
の略 ◦ 字幕⾮表⽰の設定でも表⽰する字幕のこと ▪ ⺟国語として読めないと動画を楽しめない場合に付与する ◦ 例えば、こういう時に付けます ▪ ⾛⾏シーンで現地語の標識のアップ: 視聴者が標識を分かるように ▪ 現地語で捲し⽴てている様⼦: 視聴者が現地語を分かるように ◦ 詳しくは NetflixのFN字幕ガイド を参照のこと 45
暗号化‧権利保護 46
暗号化‧権利保護 ─ 暗号化スキーム • 暗号化スキーム: 動画を暗号化する⽅式 ◦ AES: コンテナ⾃体を丸ごと暗号化 ▪
AES-128: AES-128-CBC で暗号化 ◦ SAMPLE-AES: コーデックの中⾝(Sample)を暗号化 ▪ ISOBMFF: CENC (Common Encryption) で暗号化 • CTRモード: cenc (full-sample), cens (sub-sample) • CBCモード: cbc1 (full-sample), cbcs (sub-sample) • Widevine, PlayReady は cenc が⼀般的, FairPlay は cbcs を⽤いる ▪ MPEG-TS: Apple の FairPlay の Sample AES 仕様 で暗号化 47
暗号化‧権利保護 ─ DRMシステム • DRMシステム: 暗号鍵交換の仕組み ◦ ClearKey: 暗号鍵を平⽂で管理する ▪
鍵交換の様⼦が外から⾒える → ないよりマシ程度 ▪ 分類上は HLS の AES-128 は ClearKey になる ◦ DRM: 暗号鍵を CDM(Content Decryption Module) で管理する ▪ セキュアに鍵交換/復号化を⾏う → 権利保護に適している • セキュア: TEE(Trusted Execution Environment) により担保 • セキュリティレベルによっては TEE を⽤いない (Widevine L3 とか) ▪ 3-DRM: FairPlay (Apple), PlayReady (Microsoft), Widevine (Google) • プラットフォーマーがコンテンツの権利保護の⼿段を提供している 48
配信プロトコルの新潮流 49
配信プロトコルの新潮流 ─ Enhanced RTMP • Enhanced RTMP (eRTMP/eFLV) ◦ Veovera
が策定している RTMP/FLV の拡張仕様 ▪ YouTube, Twitch, FFmpeg, OBS, Adobe が関わっている ▪ 正当な拡張として認められている雰囲気 ◦ V1: 2023-07-31-r1 (映像コーデック拡張) ▪ HEVC, AV1, VP9 に対応 ◦ V2: 2025-04-15-r1 (⾳声コーデック拡張, マルチトラック, … など) ▪ Flac, Opus, AC-3, EC-3 に対応 ▪ 映像, ⾳声のマルチトラックに対応 ◦ AWS Elemental MediaLive は⾮対応 ▪ Amazon IVS は対応済み 50
配信プロトコルの新潮流 ─ TEB (Twitch Enhanced Broadcasting) • TEB: Twitch Enhanced
Broadcasting ◦ Twitch の Enhanced RTMP を利⽤した新しい配信⽅式 ▪ 配信側は複数解像度の映像をマルチトラックで打ち上げ ▪ OVP側でトランスコードせずに配信 ◦ 専⽤の GoLive API で事前ネゴシエーションする ▪ 配信ソフト: 配信開始時にOVP側に配信設定を取りに⾏く ▪ OVP: 配信設定(解像度, 本数, ビットレートなど)を返却する ◦ GoLive API を含めて TEB と⼀括で呼称される事が多い ◦ Amazon IVS は対応済み ▪ Twitch のテクノロジーを利⽤しているため ▪ TEBを利⽤するとトランスコード不要なので安くなる! 51
配信プロトコルの新潮流 ─ LL-HLS (Low Latency HLS) • LL-HLS: Low Latency
HLS ◦ Apple が WWDC 2019 で発表したHLSの低遅延拡張 ▪ HLS での低遅延配信のデファクト ◦ 低遅延モードを有効にするには HTTP/2 以降 が必須 ▪ 低遅延モード: 投機的先読み + 再⽣バッファ量削減 による低遅延化 ▪ 低遅延モードでなくても 部分セグメント, ロングポーリング などは利⽤可 ▪ 低遅延モードだと最短1.5秒弱の遅延で配信できる ◦ AWS Elemental MediaPackage では MediaPackage V2 で対応 ▪ 制約あり: 部分セグメントは1秒 (2023年5⽉時点) 52
配信プロトコルの新潮流 ─ CMAF-ULL (CMAF Ultra Low Latency) • CMAF-ULL: CMAF
Ultra Low Latency ◦ DASH-IF が 2017年に定めたMPEG-DASHの低遅延拡張 ◦ セグメントをストリーミングレスポンスで配信する ▪ CMAF-ULLはセグメントをCMAFチャンクに分割する • fMP4なのでセグメントより細かい単位に分けてフラグメント化する ▪ セグメントをチャンクのストリーミングレスポンスとして受け取る • fMP4でも完成途中のセグメントをプログレッシブにデコード可能 ◦ LHLS: CMAF-ULLをHLSの⾮公式拡張として配信する⽅式 ▪ Apple公式でLL-HLSが出たので下⽕になっている ▪ ちなみに Amazon IVS では WebRTC/LHLS を利⽤している 53
打ち上げプロトコルの新潮流 54
打ち上げプロトコルの新潮流 ─ WHIP (WebRTC-HTTP Ingest Protocol) • WHIP: WebRTC-HTTP Ingest
Protocol ◦ WebRTCで打ち上げをするプロトコル ▪ Mixer (終了済み) の FTL (Faster Than Light) の後継 ▪ UDPなので TCPの輻輳制御などの影響を受けない ◦ WebRTCのシグナリングを HTTPリクエスト1回 で⾏う ▪ WHIPは 打ち上げ⽤のHTTP上でのシグナリング⽅式 を標準化 ▪ 配信側はWHEP(WebRTC-HTTP Egress Protocol)で標準化 ◦ エコシステムの対応状況 ▪ OBS, FFmpeg, GStreamer が対応している ▪ Amazon IVS は対応済み 55