流式传输是一种通过 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 流处理的主要步骤是:
编码和分割:源服务器将视频文件分成几秒钟长的更小的片段。服务器还会创建一个索引文件——比如视频片段的目录。然后对这些段进行编码,这意味着以多个设备可以解释的方式格式化。MPEG-DASH 允许使用任何编码标准。
交付:当用户开始观看流时,编码的视频片段通过 Internet 推送到客户端设备。在几乎所有情况下,内容交付网络 (CDN)都有助于更有效地分发流。
解码和播放:当用户的设备接收到流数据时,它会解码数据并播放视频。视频播放器会自动切换到较低或较高质量的图片以适应网络条件 - 例如,如果用户当前的带宽非常少,则视频将以较低的质量级别播放,使用较少的带宽。
什么是自适应比特率流?
自适应比特率流是一种随着网络条件的变化在流中间调整视频质量的能力。包括 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 开发的,尽管它得到了广泛的支持,但尚未作为国际标准发布。