MPEG-DASHについて調べたメモ
MPEG-DASH(Dynamic Adaptive Streaming over HTTP)は、HTTPを利用してメディアコンテンツを高品質にストリーミング配信するための規格です。NetflixやHulu、Youtubeなどでも使用されています。
MPEG-DASHについて調べたので、メモ程度に書き残しておく。MPEG-DASHを説明する前に、登場した背景から。
コンテンツ配信の変化
従来のコンテンツ配信ネットワーク(テレビ放送など)
均一的。One-size-fits-allのモデル。
一定の帯域を使って、常に同じ品質(解像度や音質)・同じ形式(映像・音声)のコンテンツを配信する。
日本のテレビでは、アナログ放送ではNTSC-J(今の地上デジタル放送はISDB-T)という規格が採用されていて、単一の規格のみを考慮すればよかった。受信機の機能も同じで、端末間の仕様の差異はほとんどない。
新しいコンテンツ配信ネットワーク(Internetなど)
従来の放送が均一だったのとは対照的に、多様性が高い。
- 端末:PC・テレビ・スマートフォン・タブレットなど、画面サイズも処理能力も異なる。
- 通信環境:光回線・Wi-Fi・モバイル通信...と、帯域や安定性などが異なる。
そのため様々なプロトコルが開発され、異なる機種間・異なる環境間でもサービスを享受できるように技術開発が続けられている。ただ、多様な要素の組み合わせ全てを、配信側が網羅的に想定してサービス提供を行うのは現実的ではない。例えばWebブラウザ経由で映像・音声を配信するだけでも、Webブラウザの種類、PCの処理能力(CPU、メモリ)、グラフィックボードの性能・それを制御するドライバーなど、考慮すべき要素がたくさんある。そこで、サービスのユビキタス性(いつでもどこでも利用できる状態)を実現するために必須となるのが、ユーザの環境に合わせてコンテンツをリアルタイムで最適化する「Content Adaptation」の考え方。
Content Adaptationとは
Content Adaptationとは、
- ネットワーク条件(静的性能、動的性能...)
- 端末条件(デコーダの種類、映像・音声出力装置の能力...)
- ユーザー条件(歳、性別、趣味、視聴履歴...)
- ユーザー環境条件(視聴場所、時間、天候...)
といった多様な条件に合わせて、コンテンツやその配信方法を変化させる技術。具体的には、ビットレートやフォーマットなどの変換、ユーザ嗜好を考慮したCMの差し替えなどを行う。Content Adaptationを実行するには、入力情報として2種類のメタデータが必要。
- Content Metadata:コンテンツ内容やビットレート、フォーマット...
- User Metadata:嗜好、ネットワーク環境...
これらのメタデータを使って行われる処理は、機能的な違いに基づいて、コンテンツの技術的な形式を最適化する「Format Layer」と、内容そのものを最適化する「Semantic Layer」の2つに大別できる。今回特に焦点を当てるのは、Format Layer。国際標準であるMPEG-DASHと、Appleが開発しRFCとしても標準化されたHLSの2つが主流となっているが、今回はMPEG-DASHを取り上げる。
MPEG-DASHとは
MPEG-DASHとは、HTTPを用いたアダプティブ・ストリーミングに関する国際標準規格(ISO/IEC 23009-1)です。視聴者の通信環境や端末性能に応じて、ライブおよびオンデマンドで配信される動画・音声の品質を動的に最適化し、安定した視聴体験を実現します。(Gemini)
MPEG-DASHが提供する主な機能として、下記のようなものがある。
- 適応的なビットレート切り替え:ネットワークのトラフィック変動に合わせて、最適なビットレートの映像を選択し、再生の途切れを防ぐ。
- 多言語のサポート:複数の音声言語トラックを用意し、ユーザーが選択できるようにする。
- 広告の挿入:ユーザーに応じて広告を差し替えることが可能。
- トリックプレイ:ポーズ(一時停止)やその解除、早送り/早戻し、特定時刻へのジャンプ、秒数を指定してのスキップといった操作
MPEG-DASHの仕組み
こちらの資料がとても分かりやすいので、一旦リンク飛んだ方がいい。MPEG-DASHによるアダプティブストリーミングの動作概要、MPDの内容、ユーザに応じた動画クリップの挿入・差し替えが解説されている。
MPEG-DASHコンテンツは、セグメントとMPD(Media Presentation
Description)の2種類のファイルで構成されている。さらにMPDはPeriod、AdaptationSet、Representationの順に階層構造で記述される。MPDの例は、こちらの資料にあるが、XMLで記述されていることがわかる。
ISO/IEC 23009シリーズ(2025/7/27時点)
- Part 1: Media presentation description and segment formats (5th Edition)
- Part 2: Conformance and reference software (3rd Edition)
- Part 3: Implementation guidelines (2nd Edition)
- Part 4: Segment encryption and authentication (2nd Edition)
- Part 5: Server and network assisted DASH (SAND)
- Part 6: DASH with server push and Websockets
- Part 7: Delivery of CMAF contents with DASH
- Part 8: Session-based DASH operations
- Part 9: Redundant encoding and packaging for segmented live media (REaP)
参考になりそうなリンク
- MPEG-DASH: Dynamic Adaptive Streaming Over HTTP Explained(Wowza Blog)の翻訳
- [MPEG-DASH] MPDのファイル構造
- 知っておきたいキーワード MPEG-DASH
- W3C Workshopスライド
Discussion