Help us understand the problem. What is going on with this article?

MPEG DASHを知る

More than 3 years have passed since last update.

はじめに

  • 正式名称はMPEG-DASHだが、DASHと呼ばれる。呼んじゃう
  • DASHはDynamic Adaptive Streaming over HTTPの略
  • 2012年4月にISO国際標準規格(ISO/IEC 23001-6)としてリリース

背景

  • HTTPプロトコルを使用した動画配信プロトコルはあるが、互換性がないためHTTPプロトコルを使った動画配信プロトコルの国際標準規格として策定された
    • HLS(HTTP Live Streaming)
      • Apple
    • SS(Smooth Streaming)
      • Microsoft
    • HDS(HTTP Dynamic Streaming)
      • Adobe

DASHの特徴

  • 最適な高品質ビデオストリームを提供できる
    • 再生が途切れない(再生中にバッファリング状態にならない)
    • 動画が途切れないように帯域などの環境に応じて動的にコンテンツ(ビットレートなど)を切り替える
  • DASHは普通のHTTPサーバで実現できる
    • RTSP (Real Time Streaming Protocol)、RTMP (Real Time Messaging Protocol)ではない
    • MPD(Media Presentation Description)と呼ばれるメタ情報が定義されている
    • AkamaiなどのCDNがそのまま利用できる。
    • DASHは、コーデックに依存しない

DASHの仕組み

dash.png

DASHイメージ図(赤のボックス部分がMPEG-DASH仕様書に規定)

dash_image.png

構造

MPD(The Media Presentation Description)

  • XMLで記載されている
  • MP4のmoov boxのイメージに近い
  • ライブを主目的として有効期限が定義できる
  • VODは静的だが、ライブは動的にアップデートされる
  • Presentation、Period、AdaptationSet、Representation、Segmentで構成されている

MPDの概要図

dash_mpd_image.png

Presentation

  • MPD構造のトップレベル
  • Presentationは完結した1本のビデオを抽象化したものを定義
    • タイトル
    • 配信するメディアファイルのストリーミング種別(オンデマンドかライブ配信かの種別)
    • メディアファイルの種類
    • 長さ
    • MPDファイルの場所
  • 言語や解像度やビットレートなどは定めていない
  • Presentationは複数のPeriodから構成される

Period

  • 番組やコンテンツを構成する1つの単位
  • Periodはビデオを時間で分割したもの
  • Periodにはstart時刻とduration時間が定義される
  • テレビ番組の本編とCM部分を別のPeriodで定義することができる
  • Periodは複数のAdaptationSetから構成される

AdaptationSet

  • 映像・音声・字幕などの単位を表現
      • MP4の日本語音声の場合には、「mimeType="audio/mp4" codecs="mp4a.40.2" lang="jp"」
      • 日本語字幕の場合は、「mimeType="text/mp4" codecs="3gp.text" lang="jp"」
      • MP4ビデオの場合は、「mimeType="video/mp4" codecs="avc1.4D401E"」
  • 再生する際に選択する動画コンテンツの構成要素をもつ
  • AdaptationSetは複数のRepresentationから構成される

Representation

  • 映像・音声のビットレートや解像度、アスペクト比などの情報
  • インターネット回線の帯域や受信端末の種類によって切換えられるように、それぞれの情報を定義することができる
  • RepresentationはSegmentから構成される

Segment

  • Segmentはメディアの最小単位
  • SegmentにはHTTP range GETで取得できるようにバイト位置や時刻情報などが記述されている
  • メディアファイルを分割したセグメントに関する情報
  • Initialization SegmentとMedia Segmentから構成される

Segment File構成

dash_segment.png

Initialization Segment

  • クライアント側での複合処理の初期化情報
  • MP4
    • ファイルタイプ(ftyp=”dash”)
    • セグメント全体のメタデータ
  • MPEG-2 TS
    • PAT(Program Association Table)
    • PMT(Program Map Table)
    • CAT(Conditional Access Table)
    • EMM(Entitlement Management Message)
    • PSI情報

Media Segment

  • 数秒〜数十秒程度の単位でセグメントに分割できる
  • 1つまたは複数で構成することができる
  • 一意のURLが付与されるため、クライアント側はHTTPによるアクセスが可能となる
  • 動画の切替単位をalignmentと呼ぶ

MPD構成イメージ

dash_mpd_data_model.png

sample

dash_mpd_sample.png

MPEG-DASHのProfile

  • MP4
    • Main Profile
      • On-Demand Profile
      • Live Profile
  • MPEG-TS
    • Main Profile
      • Simple Profile

関連リンク

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした