技术博客

自适应比特率和MPEG-DASH

自适应比特率和MPEG-DASH Greg Rutz

2015年5月26日

流媒体视频提供的基本解决方案是,在观看之前不需要下载整个视频文件。为了达到同样的效果,可能会抓取一小块媒体进行回放。需要注意的是,媒体的接收速度必须与玩家消费的速度一致。此外,在所有条件相同的情况下,特定内容的质量越高,它在磁盘上占用的字节就越多。因此,要想传输更高质量的视频,就需要更快的网络连接。但是,当涉及到当今世界众多连接设备所看到的网络速度时,所有的事情都是不平等的。

自适应比特率(ABR)流媒体技术的引入彻底改变了流媒体的传输方式。ABR背后有两个基本思想:

  1. 不同质量级别的内容的多个副本存储在服务器上。
  2. 客户端设备检测其当前网络状况,并在网络速度较慢时请求质量较低的内容,在网络速度较快时请求质量较高的内容。

这些原则非常简单,但是在为ABR系统设计功能时涉及到许多技术挑战。首先,服务器上的媒体段必须以这样一种方式创建,即允许客户端应用程序在任何时候在高质量和低质量版本之间切换,而不会看到演示中的破坏性变化(例如视频“跳跃”或音频“点击,弹出”)。其次,必须有一种方法可以让客户端“发现”ABR内容的特征,以便它知道有哪些类型的质量选择可用。最后,必须实现客户端本身,以便它能够智能地检测网络速度变化,并可能切换到不同质量的流。

今天,互联网上的大量视频流正在使用几种ABR格式中的一种。苹果的HTTP实时流媒体(HLS)和MPEG的HTTP动态自适应流媒体(DASH)是主要技术。Adobe的HTTP动态流媒体(HDS)和微软的平滑流媒体(MSS)曾经非常流行,但最近已经失宠。如您所见,大多数ABR技术都依赖于HTTP作为网络协议来服务和访问数据,这是由于服务器和客户端几乎无处不在的支持。所有ABR技术都指定了某种描述性文件或“清单”,用于描述客户端可用内容的位置、质量和类型。

在前面描述的所有ABR格式中,只有MPEG-DASH是通过一个开放的、基于标准的过程开发的,以努力吸收来自计划部署它的所有行业和组织的输入。亚博yabo888vip网页版在这个过程中,CableLabs再一次在代表我们成员的需求方面发挥了关键作用。在本文的其余部分中,我们将重点介绍MPEG-DASH技术的细节。

MPEG-DASH

MPEG-DASH规范(ISO/IEC 23009-1)于2012年初首次发布,此后经历了多次更新。与其他格式一样,媒体段存储在标准的web服务器上,并使用HTTP或HTTPS协议下载。虽然DASH是音频/视频编解码器不确定的,但规范中有一些配置文件指出了如何在服务器上对ISOBMFF和MPEG2传输流容器格式的媒体进行分段。此外,直播和点播媒体类型都得到了特别考虑。

DASH清单文件称为媒体表示描述(MPD)。它是基于xml的,包含客户端下载和显示给定内容所需的所有信息。

DASH-MPD

清单中的根元素名为MPD。这包含关于内容整体的高级信息。mpd可以是“静态”或“动态”。静态MPD用于典型的点播电影。客户端只需解析一次清单,就可以获得完整呈现内容所需的所有信息。“动态”MPD表示清单的内容可能会随着时间而变化,例如对于实时或交互式内容所期望的那样。对于动态清单,MPD节点指示客户机在请求新副本之前应该等待的最大时间。

在根MPD元素中有一个或多个Period元素。一个周期表示一个时间窗口,在这个时间窗口中,媒体将被呈现出来。Period可以引用一个绝对时间点,就像直播媒体一样。或者,它可以简单地指示其中包含的媒体项的持续时间。当MPD中出现多个Period时,不需要为每个Period指定开始时间,以便按照它们出现的顺序播放。周期甚至可以在其相关媒体段被安装到服务器上之前出现在清单中。这可以让客户为即将到来的演示做好准备。

每个Period包含一个或多个AdaptationSet元素。AdaptationSet描述了在表示中可供选择的单个媒体元素。可能有一个用于HD视频的AdaptationSet,另一个用于SD视频。使用多个AdaptationSets的另一个原因是,当有多个使用不同视频编解码器的媒体副本时,这将在只支持其中一种编解码器的客户端上启用回放。此外,客户可能希望能够在多种语言音轨或多个视频视点之间进行选择。每个AdaptationSet都包含一些属性,这些属性允许客户端识别集合中可用的媒体类型和格式,以便做出适当的选择。

(萤光笔线= 0)

           Audio_aac-lc_128k_dashinit.mp4 video_1280x720_h264-2500k_dashinit.mp4 video_1920x1080_h264-4500k_dashinit.mp4 video_704x396_h264-620k_dashinit.mp4 video_896x504_h264-1340k_dashinit.mp4

MPD的下一个层次是表示。每个AdaptationSet包含可供选择的媒体的每个质量级别(带宽值)的Representation元素。可以选择不同的视频分辨率和比特率,Representation元素告诉客户端如何找到该质量级别的媒体片段。存在几种不同的机制来描述表示中每个媒体文件的确切持续时间和名称(SegmentTemplate、SegmentTimeline等),但我们不会在本文中深入讨论这一级别的细节。

内容保护

由于本博客系列关注的是需要保护的付费订阅内容的主题,所以我想简要讨论一下DASH规范中包含的描述对加密媒体支持的功能。亚博苹果版怎么下载

实际上,DASH规范集由四个独立的文档组成。第1部分(ISO/IEC 23009-1)是基本的DASH规范。第2部分(ISO/IEC 23009-2)描述了验证规范所需的一致性软件的要求。第3部分(ISO/IEC 23009-3)提供了实现DASH规范的指导方针。最后,第4部分(ISO/IEC 23009-4)描述了段加密和身份验证的内容保护。在段加密中,对整个段文件进行加密和散列,以保护其内容并验证其完整性。这与本博客系列的重点“示例加密”不同。对于样本加密,仅对音频和视频样本信息进行加密,使容器和编解码器元数据“处于清晰状态”。

ContentProtection元素表示以某种方式保护一个或多个媒体组件。ContentProtection元素可以在MPD中的Representation或AdaptationSet级别指定。ContentProtection元素的schemeIdUri属性唯一标识用于保护内容的特定系统。类的第4部分介绍CommonEncryption时,我将进一步研究此元素的用法博客系列

...AAAAUXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADEIARIQWYGZeOWWXjWir2xOsQ2lvBoJY2FibGVsYWJzIgdUV09LRVlTKgVBVURJTzIA AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAFZgZl45ZZeNaKvbE6xDaW8AAAAAA==…

DASH-IF

在一个开放标准组织中开发MPEG-DASH的缺点之一是最终产品的相对复杂性。来自世界各地的个人和组织为标准化工作贡献了他们自己的需求。这导致了一个涵盖大量用例和部署场景的规范。然而,当涉及到生成实际实现时,标准就变得有些笨拙。现在出现了几个新的标准组织,它们将基本的DASH规范缩减为一个子集,以满足其成员的需求,并将复杂性降低到可以实际开发功能工作流的程度。

一个这样的标准机构是DASH产业论坛,或DASH-IF。最初是MPEG-DASH的营销和推广小组,现已发展成为一个成熟的标准组织,成员包括Adobe、微软、高通和三星。这个小组的目标是通过开发描述明显限制、音频/视频编解码器、媒体容器、保护方案等的“互操作性点”来推动MPEG-DASH的采用,从而产生整个DASH规范的一个更可实现的子集。

的DASH-IF互操作性的指导方针适用于DASH-AVC/264 (最新版本为3.0)就基本DASH规格列出以下规定及限制:

  • AVC / h .视频编解码器(主或高配置)
  • HE-AACv2音频编解码器
  • 分片的ISOBMFF段
  • MPEG-DASH“实时”和“随需应变”配置文件
  • 各个表示形式的段都是idr对齐的,并且对于段持续时间的变化有特定的公差。
  • CommonEncryption
  • SMPTE-TT封闭字幕

格雷格Rutz他是CableLabs的首席架构师,从事多个与亚博yabo888vip网页版数字视频编码/转码和在线视频数字版权管理相关的项目。

这篇文章是技术博客系列的一部分。基于标准的现代Web优质内容".

隐私偏好中心

    严格的必要

    网站正常运行所必需的cookie。

    PHPSESSID, __cfduid hubspotutk

    性能

    它们用于跟踪用户交互并检测潜在的问题。这些数据有助于我们通过提供用户如何使用本网站的分析数据来改善我们的服务。

    BizoID, wooTracker, GPS, _ga, _gat, _gid, _hjIncludedInSample, mailmunch_second_pageview

    针对

    这些cookies用于(1)发送与您和您的兴趣更相关的广告;(2)限制你看广告的次数;(3)帮助衡量广告活动的效果;(4)了解人们在观看广告后的行为。

    __hssc, __hssrc, __hstc,