什么是 MPEG-DASH?| HLS 与 DASH

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

Share facebook icon linkedin icon twitter icon email icon

MPEG-DASH

学习目标

阅读本文后,您将能够:

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

什么是 MPEG-DASH?

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

MPEG-DASH 是一种流式传输方法。DASH 代表“动态自适应 HTTP 流式传输”。因为它基于 HTTP,因此任何源站服务器都可设置为服务 MPEG-DASH 流。

MPEG-DASH 与另一种流式传输协议 HLS 相似,因为它将视频分解为较小的块,并且以不同的质量级别对这些块进行编码。这样,就能在不同质量级别上流式传输视频,并可在视频播放中途从一种质量级别切换到另一种。

什么是 HTTP?

HTTP 是用于通过 Internet 进行通信的第 7 层协议。Web 应用程序使用 HTTP 来回发送数据,以便两端的设备能够解读这些数据,就像来自世界不同地区的两个人使用一种通用语言进行交流一样。

MPEG-DASH 使用 HTTP,这是一个优势,因为 Internet 的绝大部分都已使用 HTTP。使用 HTTP 时,流将前往几乎总是打开的标准端口(端口 80 或 443)。这可确保流很少被防火墙阻止,防火墙可能会阻止使用专用或异常端口的流式传输协议。

MPEG-DASH 如何工作?

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

  1. 编码和分段:源站服务器将视频文件分割成 2-4 秒长的小片段。服务器还会创建一个索引文件,就像视频片段的目录一样。然后,片段会被编码,即格式化成多种设备可以解读的格式。MPEG-DASH 允许使用任何编码标准。
  2. 交付:当用户开始观看流媒体时,编码后的视频片段会通过 Internet 推送到客户端设备。在几乎所有情况下,内容交付网络(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 交付的视频。

分段:MPEG-DASH 通常将视频分割成比 HLS 更小的片段进行交付。HLS 的默认段长度为 10 秒,而 MPEG-DASH 片段的长度通常为 2-4 秒。这意味着 MPEG-DASH 可以更快地切换不同的质量级别,更快地适应网络条件。

标准化:MPEG-DASH 是国际标准。HLS 由 Apple 开发,尽管已得到广泛支持,但尚未作为国际标准发布。

HTML5 支持:HLS 自动受到 HTML5 的支持,但 MPEG-DASH 不行。这意味着某些浏览器或应用无法法播放 MPEG-DASH 视频流,即使是在非 Apple 设备上。

什么是 HTML5?

HTML 是用于编码网页的标准标记语言。换句话说,它是控制网页外观的代码。右键单击网页并从菜单中选择“查看网页源代码”,即可查看任何给定网页的 HTML 源代码。

HTML5 是 HTML 的最新版本。它包含对视频的支持,浏览器无需第三方浏览器插件即可播放嵌入式视频(这对于 Flash 是必需的);相反,浏览器可以原生支持视频。

Cloudflare 是否支持 MPEG-DASH?

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

Cloudflare Stream 是一个点播视频流平台,将视频存储、编码和可自定义播放器与 Cloudflare 全球网络相集成。Cloudflare Stream Delivery 可以缓存并加速未存储在 Cloudflare 网络上的视频流。

了解有关视频流式传输协议和标准的更多信息。