基于HTTP的动态自适应流

title: 标准化.
content: MPEG-DASH技术在MPEG之下开发。对DASH的工作始于2010年。2011年1月,它成为一项国际标准草案,并在2011年11月成为国际标准。MPEG-DASH标准已于2012年4月发布为ISO/IEC 23009-1:2012。  DASH是一项与Adobe Systems HTTP Dynamic Streaming、苹果公司HTTP Live Streaming(HLS)微软Smooth Streaming相关的技术。DASH基于3GPP第9版中的Adaptive HTTP streaming(AHS)和Open IPTV Forum Release 2中的HTTP Adaptive Streaming(HAS)。作为与MPEG协作的一部分,3GPP Release 10采用DASH(具有特定的编解码器和操作模式)用于无线网络。  DASH行业论坛(DASH-IF)进一步促进和催化了MPEG-DASH的采用,并帮助将其从规范转变为实际业务。主要的流媒体和媒体公司,包括微软、Netflix、Google、爱立信、三星、Adobe等都在实际业务中尝试使用,并为不同使用环境创建了DASH使用指南。  MPEG-DASH也被集成在其他标准中,例如HbbTV中的MPEG-DASH支持(截至1.5版本)。
title: 概述.
content: DASH是一项自适性串流技术,其将多媒体文件分割为一个或多个片段,并使用超文本传输协议传递给客户端。 媒体演示描述(MPD)描述片段信息(计时、统一资源定位符,以及媒体特征,例如视频分辨率和比特率),并且可以根据使用环境以不同的方式组织,例如SegmentList, SegmentTemplate, SegmentBase和SegmentTimeline。 片段可以包含任何媒体数据,但是规范提供了与两种容器类型一起使用的特定指导和格式:ISO基础媒体文件格式(例如MP4文件格式)或MPEG-2传输流。  DASH不关心音频/视频的编解码器。多媒体文件通常有一种或多种表示(即不同分辨率或比特率版本),并可基于不同的网络条件、设备功能和用户偏好进行选择,达到自适性串流和QoE (Quality of Experience) fairness。DASH也与底层的应用层协议无关,因此可以配合任何协议中使用。例如,基于CCN的DASH。  2015年7月27日,MPEG LA宣布呼吁与MPEG-DASH相关的专利,以便为该技术创建一个专利池。
title: 实现.
content: 通过ExoPlayer,MPEG-DASH在Android上可原生使用,如三星智能电视2012+、LG智能电视2012+、索尼电视2012+、飞利浦NetTV 4.1+、松下Viera 2013+和Chromecast。YouTube以及Netflix已经支持MPEG-DASH,并且可使用多种MPEG-DASH播放器。  中国大陆方面,bilibili已经支持MPEG-DASH。  虽然HTML5不直接支持MPEG-DASH,但是已有一些MPEG-DASH的JavaScript实现允许在网页浏览器中通过HTML5 Media Source Extensions(MSE)使用MPEG-DASH。另有其他JavaScript实现,如bitdash播放器支持使用HTML5加密媒体扩展播放有DRM的MPEG-DASH。当WebGL结合使用,MPEG-DASH基于HTML5的自适应比特率流还可实现360°视频的实时和按需的高效流式传输。
title: 服务器.
content: 请注意,除了Live Streaming外,DASH内容不需要服务器的特定支持。

Summary: 基于HTTP的动态自适应流(英语:Dynamic Adaptive Streaming over HTTP,缩写DASH,也称MPEG-DASH)是一种自适应比特率串流技术,使高质量流媒体可以通过传统的HTTP网络服务器以互联网传递。类似苹果公司的HTTP Live Streaming(HLS)方案,MPEG-DASH会将内容分解成一系列小型的基于HTTP的文件片段,每个片段包含很短长度的可播放内容,而内容总长度可能长达数小时(例如电影或体育赛事直播)。内容将被制成多种比特率的备选片段,以提供多种比特率的版本供选用。当内容被MPEG-DASH客户端回放时,客户端将根据当前网络条件自动选择下载和播放哪一个备选方案。客户端将选择可及时下载的最高比特率片段进行播放,从而避免播放卡顿或重新缓冲事件。也因如此,MPEG-DASH客户端可以无缝适应不断变化的网络条件并提供高质量的播放体验,拥有更少的卡顿与重新缓冲发生率。

Dynamic Adaptive Streaming over HTTP: Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers. Similar to Apple's HTTP Live Streaming (HLS) solution, MPEG-DASH works by breaking the content into a sequence of small HTTP-based file segments, each segment containing a short interval of playback time of content that is potentially many hours in duration, such as a movie or the live broadcast of a sports event. The content is made available at a variety of different bit rates, i.e., alternative segments encoded at different bit rates covering aligned short intervals of playback time. While the content is being played back by an MPEG-DASH client, the client uses a bit rate adaptation (ABR) algorithm to automatically select the segment with the highest bit rate possible that can be downloaded in time for playback without causing stalls or re-buffering events in the playback. The current MPEG-DASH reference client dash.js offers both buffer-based (BOLA) and hybrid (DYNAMIC) bit rate adaptation algorithms. Thus, an MPEG-DASH client can seamlessly adapt to changing network conditions and provide high quality playback with fewer stalls or re-buffering events.