MPEG-DASH新功能白皮书翻译

1,616 阅读12分钟

注:英语太烂基础太差,本翻译文档仅供本中自己参考,包含一大堆自己YY的意译。而且我现在觉得看白皮书啥用没有,还得把标准仔细读一遍才行,大坑!

BTW吐槽,这个白皮书的作者英语真的很烂,写作也很随意,真不知道这玩意儿咋发布的

注:MPEG-DASH标准中第1-4部分为核心功能,一些版本:

  • MPEG-DASH标准第一部分第一版(Media presentation description and segment formats)(ISO/IEC 23009-1:2012),
  • MPEG-DASH标准第一部分第二版(Media presentation description and segment formats)(ISO/IEC 23009-1:2014),
  • MPEG-DASH标准第二部分(Conformance and reference software)(ISO/IEC 23009-2:2017),
  • MPEG-DASH标准第三部分(Implementation guidelines)(ISO/IEC TR 23009-3:2015),
  • MPEG-DASH标准第四部分第一版(Segment encryption and authentication)(ISO/IEC 23009-4:2013)
  • MPEG-DASH标准第四部分第二版(Segment encryption and authentication)(ISO/IEC 23009-4:2018)
  • MPEG-DASH标准第五部分第一版(ISO/IEC 23009-5:2017),
  • MPEG-DASH标准第六部分(ISO/IEC 23009-6:2017)

编号:ISO/IEC JTC 1/SC 29/WG 11 N16708

时间:2017年1月

标题:MPEG-DASH新功能白皮书

一、简介

随着2012年4月MPEG-DASH标准第一版(ISO/IEC 23009-1)的发布,对于这第一个将整个行业兼容到同一流媒体协议中的开放国际标准,网络视频媒体业表现出极大的关注度。该标准由流媒体行业大量技术领先的公司共同制定,用开放的、任何人可用的单一标准,实现了更佳更为有效的技术。这是首个真正具有兼容性、融合度的流媒体协议,基于此标准,服务提供商们可以大大减少他们的内容副本。

图一

图一、MPEG-DASH标准中的重要功能 在过去的四年中,MPEG委员会致力于加强和扩展DASH的功能。当前MPEG-DASH标准一共有6个部分,其中有一些发布了第二版。核心部分的第三版将于2017年上半年发布。本白皮书将介绍MPEG-DASH的一些新功能,图一中列举的是各个版本中较为重要的功能。

二、第一部分:MPEG-DASH核心定义

MPEG-DASH标准(ISO/IEC 23009)目前包含6个部分。第一部分[1]定义了协议的MPD(Media Description Presentation)文件和分片格式,这是该规范的核心部分。DASH标准可以在包括HTTP/1.1在内的诸多传输协议上使用。这部分并未指定具体的编码标准,它允许使用任何能被封装在MP4[2]或TS文件中的编码器。这部分给出了MPD文件的定义,用于描述媒体内容的时序模型。其中,表示(Representation)被用来描述媒体内容,同一内容的所有表示(如码率、分辨率、帧率等)集合称为一个自适应子集(Adaptation Set)。MPD文件在内容注解方面表现极佳。对每个媒体组件,MPD可以定义它的角色、可访问性、视角、音轨乃至DRM(数字版权管理)和加密信息(针对受版权保护的内容)。MPD文件的更新机制可用于添加新的内容,这在直播场景中尤为重要。同时,它还支持多CDN及多分片寻址方案。

MPEG-DASH标准中的媒体分片格式支持将媒体内容按分片传输(乃至按子分片的粒度)。将分片按序组合,可以构成完整的媒体流。正确编码生成的分片,保证了网络波动时DASH客户端在多个表示之间无缝切换。

该标准第一部分第一版于2012年发布,两年后,MPEG增加了包括事件消息和属性标识符在内的附加功能。事件消息用于传递时间轴事件,可以在MPD文件或媒体分片中存在。它为DASH客户端或使用DASH客户端的应用提供了一种发送稀疏信息的灵活机制。比如,MPD更新事件用于通知客户端对所使用的MPD文件进行更新,SCTE35消息也可以插入某个事件中,用来通知有广告插入。

从2014年以内,MPEG-DASH第一部分已经增加了许多新的功能,预计将在2017年上半年发布的第三版中包含。在此,我们列举其中的一些最新的功能。

三、空间关系描述

由于大尺寸/多摄像机等场景的普及,一体式传输这些场景下的视频内容可能效率不高,取而代之,可以将视频划分为拼接阵列,客户端只需获取与其视角相关的流媒体分片数据。MPD文件中的空间关系描述(Spatial Relationship Description,SRD)工具标识了拼接视频块相对于整个视频的坐标和大小。这些信息使得客户端可以计算每个拼接视频块的相对位置,因此,客户端可以决定是传输一小部分视频块覆盖的小片区域,或是同时传输每个独立的视频块来覆盖整个视频。SRD提供了一个非常灵活的坐标系,允许重叠、ROI拼接及不同大小分块的拼接。SRD是VR流高效传输的关键技术之一。

四、外部MPD链接

MPD文件可以在当前全部节目的组合预览频道与每个单一的节目/音轨之间建立关联。在观看组合频道的内容时,用户可以浏览到所有的节目,并决定自己想选择的某个频道。然后,用户点击并选择,播放端开始全屏播放当前频道的内容。外部MPD链接(External MPD Linking)[4]为这种场景提供支持。在组合频道的MPD文件中,每个节目用一个空的自适应子集(Adaptation Set,AS)来表示,用来描述该节目频道的AS,存在于每个频道自身的MPD文件中。链接机制允许从组合频道MPD文件中的空AS跳转至对应频道的MPD文件。

五、区段连续性

媒体会话中的时间线可以划分为多个时段。MPD文件中的区段(Period)就是将时间轴分段的简易途径。该机制允许在MPD文件中插入动态广告的区段,或直播场景中加入新的区段。由于不属于同一媒体流的区段也可以顺序播放(比如动态广告插入场景中,先播放媒体流的一个区段,紧接着播放广告内容的区段,然后继续播放媒体流区段),DASH中给出了一个标识[4]用于标记当前区段与前一区段是否具备连续性。区段连续性标识还为区段切换期间的时间戳校准提供了参考。

六、MPD链

在以广告驱动的流服务中,在正式流媒体内容前播放贴片广告是常用的一项功能。在这种场景下,当用户选择了某一内容时,贴片广告应在媒体内容前被播放,所选择的媒体内容可以是点播(提前录制存储)或直播(实时产生)。点播场景下支持贴片广告较为简单:只需创建一个新的MPD文件,将广告的区段放在媒体内容的区段前即可。但直播场景下存在一个问题,我们期望看到的是,用户点击时,先播广告,然后再建立直播链路开始播放直播流。但直播中每一个时间点的内容都不一样,很难组建一个新的MPD文件。为此,MPEG标准中提出了MPD链(MPD chaining)工具,允许两个以上的MPD文件互相链接。这样,播放器可以先将第一个MPD对应内容(比如,广告的)播放完成,再用直播当前的MPD文件开始播放。

七、广播电视的灵活分片格式

本工具在MPEG-DASH标准第二版第四修订案[5]中也有提及,它将码流的切换点及随机接入点(RAP)标识进行了区分。切换点用于动态码率调整时实现无缝切换,而随机接入点则表示可以在该处开始播放(比如频道切换时)。在DASH的基本属性中,为了相对简单的格式实现,切换点和随机接入点是同样的。但随机接入点的增加会导致切换点的对应增加,这样将造成压缩率的下降(由于产生了更多的IDR帧)。灵活分片格式(Flexible Segment Format)机制允许拆分切换点和随机接入点。基于此,媒体内容可以用较高的压缩率编码,保证较多随机接入点的同时,减少切换点的数目。这种机制对流媒体和广播电视(混合传输)都适用。

八、第五部分:DASH的服务端和网络支持

DASH客户端可以基于可用带宽和其他本地资源,用客户端拉取方式来调整它们的请求。事实证明,这比在CDN上部署服务端推送机制更为容易。然而,当需要为高级用户提供持续的、更高质量服务时,DASH的这种分散性带来了新的挑战。比如,以下场景时服务质量可能受到影响:

  • 在网络故障或配置更新后,MPD文件中声明的资源可能已经过时,这会导致客户端请求DASH分片时数据错误或请求失败。
  • 当手机端网络切换或缓存未命中时,DASH客户端可能错误地认为带宽降低,从而切换到较低质量的分片。
  • DASH客户端可能错误地从低质量分片开始播放,直到评估出带宽较高时才提升清晰度。
  • 多个DASH客户端可能共享并竞争带宽,这会导致不必要的相互影响及网络抖动。

MPEG-DASH标准第五部分:DASH的服务端和网络支持(Server and Network-assisted DASH,SAND)[6]解决了以上这些问题。SAND的关键功能是实现了网络到客户端、网络与网络之间对于质量相关信息的异步通信。

图二

图二、原有DASH架构及新增的SAND结构 SAND信道的增加,使得支持SAND的组件之间可以传递SAND信息,因此SAND结构被认为是原有DASH架构体系的加强,如图二。这些SAND消息携带了诸如带宽可用性、DASH客户端后续请求、附近HTTP节点中缓存的媒体分片等信息。此外,SAND的实时性和无状态性,使得在各类网络环境(如家庭网络,OTT,移动网络等)中进行部署优化成为可能。

九、第六部分:服务端推送和WebSocket传输DASH流

HTTP/2和WebSocket的引入和部署,为DASH提供了基于这些协议传输及使用其优越性的机会。HTTP/2和WebSocket都允许服务端启动或客户端启动机制、数据请求取消机制、多个请求响应数据的复用。

DASH标准的第六部分[7]为每种协议提供了服务端推送模式下的交互操作。该规范定义了当客户端发送多个请求时,服务端如何合并响应并推送。每个推送指令都定义了不同的推送策略。比如,使用按需推送(push-next)指令,客户端请求服务端推送后续的K个分片,其中K值由客户端定义;使用按时推送(push-time)指令,客户端请求服务端在接下来的N秒内推送当前流的所有可用分片,其中N值由客户端定义;使用按列表(push-list)指令,客户端请求服务端推送指定列表中的对应分片。该规范还定义了服务端响应指令时的推送确认消息。

基于服务端推送和WebSocket传输的DASH流主要用于低延时直播场景。这种情况下,客户端接收的数据在时序上非常接近播放点。为了减少延迟,应在尽可能短的时间内将分片发送到客户端上。在这种场景下,如果服务端已收到相应的推送指令,就无需等待来自客户端的HTTP GET请求,当服务器上某个数据分片可用时,直接将其推送到客户端。

十、引用

  • [1] ISO/IEC 23009-1:2014 Dynamic adaptive streaming over HTTP (DASH) -- Part 1: Media presentation description and segment formats
  • [2] ISO/IEC 14496-12:2015 Information technology -- Coding of audio-visual objects -- Part 12: ISO base media file format
  • [3] ISO/IEC 23009-1:2014/Amd 2:2015 Spatial relationship description, generalized URL parameters and other extensions
  • [4] ISO/IEC 23009-1:2014/Amd 3:2016 Authentication, MPD linking, Callback Event, Period Continuity and other Extensions
  • [5] ISO/IEC 23009-1:2014/Amd 4:20xx AMENDMENT 4: Segment Independent SAP Signalling (SISSI), MPD chaining, MPD reset and other extensions
  • [6] ISO/IEC 23009-5 Information technology -- Dynamic adaptive streaming over HTTP (DASH) -- Part 5: Server and network assisted DASH (SAND)
  • [7] ISO/IEC DIS 23009-6 Information technology -- Dynamic adaptive streaming over HTTP (DASH) -- Part 6: DASH with server push and websockets