MOFU MOFU

技術的なことから、趣味の分野までいろいろメモ程度に書いていきます

HTTP Adaptive Streamingについて (MPEG DASHについて)

突然ですが、MPEG DASHってご存知ですか?
MPEG DASHは2012年にISOによって標準化された、次世代のストリーミングの規格です。

最近、論文を読んでて、なかなか普及が進まない、というか知名度も低いんじゃない?って感じてます。
いや、徐々に進んでるのかな。その点はわかりませんが、知人の間では知名度が低いです。


そもそも、これまでのストリーミングの方式として、RTPとかUDPを用いたストリーミング配信が一般的でした。
その理由としては、TCPの再送遅延や、congestion controlなどがあり、制御が難しい事が挙げられていました。
しかしながら、現在ではHTTP(over TCP)ベースのストリーミングでも、十分対応できることが明らかになっています。


そもそも、Adaptive Streamingって何?って人向けに簡単に説明すると、
変化するネットワークに対応して、動画の再生品質を変え、ユーザーが快適に再生を続けることができるようにするストリーミングです。そのため、サーバーサイドでは、複数のビットレートのフラグメント(ビデオとオーディオそれぞれ数秒に区切ったもの)を用意しています。それを、クライアントが状況に応じて要求する形式です。


いろいろな規格があり、それぞれスループットを予測するアルゴリズムや、バッファー、どのようにリクエストを送るのかなど違いもあり、特徴が出たりします。また、クライアント側のCPUの状況を把握したり、解像度を把握しそれ以上のクオリティのものを要求しないようにしたりするものもあります。

有名なもので言えば、Microsoft Smooth Streaming, Apple HTTP Live Streaming, Adobe HTTP Dynamic Streamingなどがあります。
Smooth Streamingは、Microsoft Silverlightに実装されているので気付かずに使っていることもあるかもしれません。



ストリーミングの規格がたくさんあり、それぞれ対応するものも違ったりするので複雑。ということで、MPEG-DASHを標準化したわけです。MPEG-DASHのメンバーには、結構有名な企業が入っています。Adobe, Microsoft, Cisco, Dolby, Nokia, NETFLIX, SONY, Ustreamなど


MPEG-DASHでは、ストリーミングに関する様々な機能が標準化されています。
例えばDRM(デジタル著作権管理)とか広告挿入とか、セグメントやリクエストに関するフォーマットなど。
さらに、一般的な、HTTPサーバーやメディアサーバーで動作するため、MPEG-DASHのために、インフラを導入する必要がありません。


最近では、IIJがライブ配信にMPEG-DASHを使っていました。
そのうち普及してくるのかなと思っていますが、個人的に感じているのが、ストリーミングはともかく、ネットワークに興味がある人が少ない気がします。おもしろいのに。。。ひょっとして、私の周りだけなのかな?

長々と書いていたら文字だらけになってしまいました。すいません

Dash-IF
http://dashif.org/

Microsoft Smooth Streaming
http://www.iis.net/media/experiencesmoothstreaming