什么是 MPEG-DASH?| HLS 与 DASH

MPEG-DASH 是一种用于在 Internet 上流式传输视频的技术。MPEG-DASH 使用 HTTP,可以在任何 Web 服务器上运行。

学习目标

阅读本文后,您将能够:

  • 了解 MPEG-DASH 视频流技术的工作原理
  • HLS 与 MPEG-DASH 对比
  • 探索自适应比特率流式传输的好处

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是 MPEG-DASH?

流式传输是一种通过互联网传输数据的方式,以便设备可以在数据完全加载之前开始显示。视频通过互联网进行流式传输,以便客户端设备不必下载整个视频文件就可以开始播放。

MPEG-DASH 是一种流式传输方法。DASH 代表“基于HTTP 的的动态自适应流式传输”。由于其基于 HTTP,任何源服务器都可以配置为提供 MPEG-DASH 流式传输。

MPEG-DASH 类似于HLS ,后者是另一种流式传输协议,它将视频分解成更小的片段,并以不同的质量级别对这些片段进行编码。这使得有可能流式传输不同质量级别的视频,并在视频中间从一种质量级别切换到另一种质量级别。

什么是 HTTP?

HTTP 是用于通过互联网进行通信的第 7 层协议。Web 应用程序使用 HTTP 以两端设备都能够解析的方式来回发送数据;这有点像来自世界不同地区的两个人使用一种共同语言进行交流。

MPEG-DASH 使用 HTTP,这是一个优势,因为互联网大部分已经使用 HTTP。使用 HTTP,流媒体传送到一个几乎始终打开的标准端口(端口 80 或 443)。这确保流媒体极少被防火墙阻止,因为防火墙会阻止使用专用或不寻常端口的流式传输协议。

MPEG-DASH 如何工作?

MPEG-DASH 流式传输包含以下主要步骤:

  1. 编码和分割:源服务器将视频文件分割成几秒长的小片段。服务器还会创建一个索引文件——就像视频片段的目录。然后对这些片段进行编码,即以多种设备可以解析的方式进行格式化。MPEG-DASH 允许使用任何编码标准。
  2. 交付:当用户开始观看流媒体时,已编码的视频片段被通过互联网推送到客户端设备。在几乎所有情况下,内容分发网络 (CDN) 都能帮助更高效地分发流媒体。
  3. 解码和回放:当用户的设备接收到流数据时,它会解码数据并回放视频。视频播放器会自动切换到较低或较高质量的图像以适应网络条件 —— 例如,如果用户当前的带宽极低时,视频将以使用较少带宽的较低质量级别播放。

什么是自适应比特率流式传输?

自适应比特率流式传输就是一种在网络条件变化时在流中间调整视频质量的能力。包括 MPEG-DASH、HLS 和 HDS 在内的多种流式传输协议允许自适应比特率流式传输。

自适应比特率流式传输之所以可行,是因为源站服务器以多种不同的质量级别对视频片段进行编码。这发生在编码和分段过程中。视频播放器可以在视频播放过程中从一种质量级别切换到另一种,而不会中断播放。这可以防止在网络带宽突然减少时视频完全停止播放。

HLS 与 DASH:主要区别是什么?

HLS 是当今另一种广泛使用的流式传输协议。MPEG-DASH 和 HLS 在许多方面相似。这两种协议都在 HTTP 上运行,使用TCP作为它们的传输协议,将视频分成带有随附索引文件的片段,并提供自适应比特率流式传输。

但是,这两种协议有几个关键区别:

编码格式: MPEG-DASH 允许使用任何编码标准。另一方面,HLS 需要使用H.264或 H.265。

设备支持: HLS 是唯一受 Apple 设备支持的格式。iPhone、MacBook 和其他 Apple 产品无法播放通过 MPEG-DASH 传输的视频。

片段长度:这是 2016 年以前协议之间的较大差异,当时 HLS 的默认片段长度为 10 秒。今天,HLS 的默认长度为 6 秒,但可以调整。MPEG-DASH 片段的长度通常在 2 到 10 秒之间,但最佳长度是 2 到 4 秒。

标准化: MPEG-DASH 是一种国际标准。HLS 由 Apple 开发,尽管得到了广泛的支持,并没有发布为国际标准。

Cloudflare 是否支持 MPEG-DASH?

Cloudflare 视频流式传输产品支持 MPEG-DASH 以及其他流式传输标准。Cloudflare 用于视频流式传输的主要产品是 Cloudflare Stream and Cloudflare Stream Delivery

Cloudflare Stream 是视频点播流式传输平台,将视频存储、编码、可定制嵌入式播放器与 Cloudflare 全球网络 集成在一起。Cloudflare Stream Delivery 缓存并加速未存储在 Cloudflare 网络上的视频流。

进一步了解视频流式传输。