目录

MPEG-DASH是由MPEG牵头开发的基于HTTP的自适应码率流媒体技术,于2011年11月形成国际标准,其标准文档为ISO/IEC 23009-1。

基于HTTP的流媒体协议流行,从环境上考量,主要的原因是HTTP协议对防火墙友好,又天然适合CDN以缓存的方式分发。

鉴于互操作性的需求,私有协议终归不能成为主流,操作系统、浏览器的支持都将是促进标准化的推手,如果说之前各家推出的HLS、HDS、Smooth等协议是在用快递物流替代集中购物,那么DASH就好比快递公司接入了统一的菜鸟网络,能够以统一的方式提供服务。

MPEG-DASH与前面介绍的HLS、HDS、Smooth Streaming的设计理念相近,将音视频文件或直播流分割成一系列可下载播放的文件切片,使用MPD文件描述切片信息。

DASH中的MPD符合XML格式,协议定义了大量标签以帮助描述,其中以Period定义一段连续的音视频片段,每个Period内包含多各音视频内容的集合(主要应用于多分辨率、帧率、码率或者多语言,相互可以切换)称作AdaptationSet,每个AdaptationSet内含多个Representation,即一个独立的音频或视频流,每个Representation再由一系列的多媒体Segment组成。

应用

一些现代浏览器(如Chrome、Edge、Firefox、Safari等)均对W3C标准定义的MSE(MediaSource Extension,媒体源拓展)和EME(Encrypted MediaExtensions,加密媒体扩展)进行了支持,将以往由插件提供的功能收归浏览器,运用Javascript开发的网页播放器只需下载MPD文件并解析,再将音视频文件送给浏览器,就能很容易地播放。MSE和EME的详细内容可参考W3C网站:

** MSE原理**​

** ESE原理**​

除浏览器以外,Android、Chrome、Roku等多种平台上均有对MPEG-DASH的支持。在不支持DASH的平台上,亦可通过移植浏览器(Chromium,Chrome的开源版本)的方式加入视频播放功能。DASH协议为统一混乱的流媒体市场推进了一大步,但由于DASH和HLS的互不兼容,意味着为支持各类设备的全覆盖,在线视频服务商需要准备MPD和M3U8两种Manifest文件,更糟的是,需要编码fMP4和TS两份不同的音视频文件,同时,抛开研发和存储的成本,CDN将需要在所有边缘节点上存储两份视频文件,这意味着双倍的成本。

为避免上述尴尬的局面,微软、思科、苹果、Comcast等公司发起了CMAF标准(CommonMedia Application Format,通用媒体应用格式),这份标准统一了视频文件的容器格式,不论HLS,还是DASH,都可以使用同一份节目内容,在需要加密保护的场景,也可通过不同的DRM方案加密或解密同一份文件。此外,CMAF的一项新设计即对数秒长度的切片再分块传输,也对HTTP类型的流媒体协议最令人诟病的延迟问题大有裨益。

下面是CMAF的对象模型: