我们为什么使用DASH

1,814 阅读4分钟
原文链接: www.bilibili.com

什么是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:

 

15年的B站我们使用整段的FLV和MP4,这种方案的好处是简单且兼容性高,抖音与今日头条就是用该方案。

但缺点也很明显,随着视频时长的增长,整段的MP4的头部过于复杂,体积过于庞大,导致拉取与加载极为缓慢。

 

16年的B站为了规避这个问题,使用了分段的FLV来提升加载速度,这种方案的好处是视频头部小,加载速度高。爱奇艺和优酷也使用类似方案。

这种方案简单且兼容性高,而且与直播流统一了格式,所以一直沿用至今,中间由于flv.js的出现 ,把这种方案带向了全平台。

 

但随着用户的增加,用户的网络种类和情况也变得更加复杂,如果我们需要在各种场景下都需要给用户较好的体验,我们需要选择一种能在不同网络下都能流畅播放的方案。

我们需要引入Dynamic Adaptive Streaming/ Bitrate  技术,以进一步提升用户体验。

我们也需要对多音轨和多视频轨

在评估了一些行业内使用的方案后,我们选中了DASH,DASH也可以更灵活的实现用户与产品的新增需求。


 

 

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

对于普通看视频的用户,我们期待部署Dash有以下改进:

  1. 观看视频更为流畅,如下图所示,我们会在网速不佳时无缝切换至较低清晰度视频,在网速充足时无缝切换至高清晰度视频,切换过程对于用户无感。

 

2. 可以很容易的支持音频模式,满足听相声/音乐的你(不对

3. 在退到后台后,可以自动切换至只拉取音频,更节省你的流量,播放更加流畅。

4. 可以很容易的支持视频新增多音轨,多视频轨,多字幕轨的任意切换 ,原声,中配,多版本字幕任君选择。

 

 

 

DASH对UP主的影响:

 

对于Dash,我们会将除了1080P+/1080P60/720P60 以外的清晰度,进行全二压处理,以便将GOP对齐,而且我们会尝试将GOP缩减到5s,方便更灵活的切换。

 

这次是我们对Flv转Dash的变更后的清晰度规格说明:

 

 

 

 

综上所述:

我们对于视频会根据原片规格看情况输出 1080P+/1080P60/720P60/720P/480P/360P   6种规格

对于音频会根据原片规格看情况输出 320kbps/64kbps 2种规格

另外,我们会将最大文件上传大小从4GB增加到8GB。

 

 

参考文献地址:

 

http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html