Edited at

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






関連リンク


参考