MPEG-DASH是啥?

参考:

《基于QUIC传输的自适应流媒体技术研究》    

------------------------------------------------------------------------- 

        MPEG-DASH是一个新起的标准,在此之前已经有许多流媒体服务提供商提出各自的自适应流媒体技术方案。自适应流媒体技术最早可以追溯到Apple公司的HHTP直播流技术,Adobe公司的动态流技术和Microsoft公司的smooth  stream技术。然而现实生活中,这些流媒体服务提供商提供的解决方案采用各自独属的内容格式,导致彼此之间无法兼容,从而使得系统的整体维护难度加大。

        为了解决不同流媒体服务提供商提供的移动终端与后台流媒体服务器之间的互通性,让不同流媒体提供商和服务器之间交互;在保证实现系统的开放性与通用性的同时降低系统复杂性及运营成本。2011年底,MPEG-DASH协议由MPEG组织与3GPP联合提出,并于2014年成为首个基于HTTP协议的自适应流媒体技术的国际标准。随着标准的不断发展,MPEG-DASH正在被越来越多的公司关注与应用。

        MPEG-DASH标准中当前只是对视频资源进行了相应的规定,视频资源只包含了视频媒体段与 MPD(媒体描述文件)。
MPEG-DASH规定的流媒体视频被DASH封装生成具有固定播放时长的视频媒体段,并使用 MPD 记录视频资源的详细信息。把生成好的视频资源和 MPD 文件存放在服务器中。播放视频时,客户端首先向服务器下载 MDP文件,解析MPD文件获取播放视频的相关信息。客户端根据当前客户端的视频缓存水平与当前网络状况自适应的选择合适码率的视频资源进行下载。从而在播放过程中实现码率自适应,充分利用网络资源,保证视频播放流畅。

                                 

------------------------------------------------------------------------- 

MPD文件

        MPEG-DASH标准中提出了一个层次化的文件组织结构,并将其用于描述流媒体服务器上的视频资源文件。MDP(媒体呈现描述文件)同视频媒体段一块生成,包含着所有生成文件视频,音频,音视频码率字幕等所有内容。一般供客户端在会话开始时使用HTTP协议下载,之后客户端根据缓存水平与网络环境选择合适的资源进行下载,实现视频自适应播放。
                         

        MPD文件具有可扩展的特点,能方便的获得跨平台的支持。文件数据量小,下载耗时少,在传输过程中几乎不会造成时延。
MPD使用的是分层的数据模型,包括周期(period),适应集(Adaption Set),表示(Reprentation),段(Segment)。

        一个MPD文件包含着一个或者多个能时间轴上连续的周期。周期是可以连续播放的视频的播放时长,包含视频的起始时间与持续时间。在这段时间内,视频的相关参数确定。 

        一个周期有一个或者多个适应集组成。适应集内包含着一个或者多个媒体组件,同一个适应集内的媒体内容相同,只是编码版本不同,不同适应集内的媒体内容可能不一样。一个适应集中包含着一个或者多个表示。一个表示通常是由一个或多个编码版本组成,是对特定媒体内容中通道数,解析度等信息的描述。一个表示中包含着一个或多个段。段是一个临时的媒体流序列块,是 MPD 文件中的基本单元。一个表示通常由一个或者多个按时间顺序的段组成,每个段中都包含着各自视频媒体段的 URL 供客户端通过 HTTP 协议下载。

------------------------------------------------------------------------- 

DASH视频段

        MPEG-DASH标准将视频划分为时间上连续不重叠的视频段,将分割好的视频段存放在流媒体服务器中,视频段后缀为“
.m4s”。每个视频媒体段中一般是固定的,通常在2s到10s 之间。因为每个视频媒体段是由若干完整的GOP组成,故每个视频媒体段都可以独立播放。并对应有独立的URL地址记录在MPD文件的段中。客户端可以通过解析MPD文件获取视频媒体段的URL,并通过HTTP协议想服务器请求下载。

------------------------------------------------------------------------- 

DASH自适应传输过程

        MPEG-DASH自适应传输过程如图2.5,服务器中存放和管理视频资源及描述视频资源的MPD文件。客户端播放视频时,首先客户端会根据MPD文件的URL通过HTTP协议向服务器请求MPD文件。服务器收到HTTP请求后对其进行响应传输客户端请求的MPD文件。客户端接收到MPD文件后对MPD文件进行解析获取播放视频的具体信息,并根据网络情况确定第一段视频的码率。根据MPD文件中对应视频的URL使用HTTP协议下载。第一段视频下载完毕后,客户端综合自身缓存以及网络环境选择合适码率的第二段视频段下载,依次类推,直到所有视频下载完毕。

                                                      

        由于HTTP协议是无连接的,客户端与服务器之间不需要保持连接,整个下载播放过程是由DASH客户端驱动,服务器只需要简单地存放维护视频资源即可 。

------------------------------------------------------------------------- 

附:

        MPEG-DASH是一个解决方案,有基于它实现的开源播放器,例如dash.js,网上也有很多基于dash.js的播放器demo

        HTTP是无连接,无状态的:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间,Keep-Alive可保持链接;无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完不会记录任何信息,cookie与session可保持状态。

        

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章