什么是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有以下改进:
观看视频更为流畅,如下图所示,我们会在网速不佳时无缝切换至较低清晰度视频,在网速充足时无缝切换至高清晰度视频,切换过程对于用户无感。
可以很容易的支持音频模式,满足听相声/音乐的你(不对
在退到后台后,可以自动切换至只拉取音频,更节省你的流量,播放更加流畅。
可以很容易的支持视频新增多音轨,多视频轨,多字幕轨的任意切换 ,原声,中配,多版本字幕任君选择。
DASH对UP主的影响:
对于Dash,我们会将除了1080P+/1080P60/720P60 以外的清晰度,进行全二压处理,以便将GOP对齐,而且我们会尝试将GOP缩减到5s,方便更灵活的切换。
这次是我们对Flv转Dash的变更后的清晰度规格说明:
综上所述:
我们对于视频会根据原片规格看情况输出 1080P+/1080P60/720P60/720P/480P/360P 6种规格
对于音频会根据原片规格看情况输出 320kbps/64kbps 2种规格
另外,我们会将最大文件上传大小从4GB增加到8GB。
参考文献地址:
https://www.bilibili.com/read/cv855111
http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html