HTTP动态自适应流(Dynamic Adaptive Streaming over HTTP, DASH)

基本介绍

DASH,又叫MPEG DASH,DASH:Dynamic Adaptive Streaming over HTTP ,是一种在互联网上传送动态码率的Video Streaming技术,类似于苹果的HLS,DASH会通过media presentation description (MPD)将视频内容切片成一个很短的文件片段,每个切片都有多个不同的码率,DASH Client可以根据网络的情况选择一个码率进行播放,支持在不同码率之间无缝切换。YouTube采用DASH。其网页端及移动端APP都使用了DASH。DASH的其他采用者包括:Netflix, Hulu。
DASH是由MPEG (Moving Picture Experts Group)组织制定,2010年开始启动,2011年11月发布Draft版本,2012年4月发布第一稿Version(ISO/IEC 23009-1:2012),2014年5月发布第二稿(ISO/IEC 23009-1:2014),最新稿(ISO/IEC 23009-3:2015)。
目前3GPP Release 10已经将DASH纳入其中;在HbbTV 1.5中也支持DASH;DVB-DASH也将DASH纳入到DVB(ETSI TS 103 285 v.1.1.1)。目前DASH Industry Forum由发起厂家组成,致力于推进DASH产品生态,将DASH产业化和业界最佳实践推向批量应用。

DASH能够利用现有的内容交付网络基础设施,并与许多客户端应用程序兼容。下图[2]是DASH系统的一个标准实例。

每个片段被编码在不同的压缩级别,以产生不同的比特率表示,即不同的视频视觉质量。在每个时隙,客户端选择一个表示,即具有一定比特率的段,以下载。客户的问题是找到一个最优策略,使其QoE最大化,如最大的平均比特率和最小的拒绝,即视频播放冻结的时间.

DASH出现的背景和优势

15年的B站使用整段的FLV和MP4,这种方案的好处是简单且兼容性高,抖音与今日头条就是用该方案。但缺点也很明显,随着视频时长的增长,整段的MP4的头部过于复杂,体积过于庞大,导致拉取与加载极为缓慢。
16年的B站为了规避这个问题,使用了分段的FLV来提升加载速度,这种方案的好处是视频头部小,加载速度高。爱奇艺和优酷也使用类似方案。这种方案简单且兼容性高,而且与直播流统一了格式,所以一直沿用至今,中间由于flv.js的出现 ,把这种方案带向了全平台。
但随着用户的增加,用户的网络种类和情况也变得更加复杂,如果需要在各种场景下都需要给用户较好的体验,需要选择一种能在不同网络下都能流畅播放的方案。需要引入Dynamic Adaptive Streaming/ Bitrate  技术,以进一步提升用户体验。也需要对多音轨和多视频轨;在评估了一些行业内使用的方案后,选中了DASH,DASH也可以更灵活的实现用户与产品的新增需求。

DASH对于观看群众可能的影响

对于普通看视频的用户,部署Dash有以下改进:
A. 看视频更为流畅,如下图所示,我们会在网速不佳时无缝切换至较低清晰度视频,在网速充足时无缝切换至高清晰度视频,切换过程对于用户无感。
B. 可以很容易的支持音频模式,满足听相声/音乐的你(不对
C. 在退到后台后,可以自动切换至只拉取音频,更节省你的流量,播放更加流畅。
D. 可以很容易的支持视频新增多音轨,多视频轨,多字幕轨的任意切换 ,原声,中配,多版本字幕任君选择。

参考:

[1] https://www.bilibili.com/read/cv855111/
[2] Applications of Deep Reinforcement Learning in Communications and Networking: A Survey

原文地址:https://www.cnblogs.com/Higgerw/p/14767366.html