HTTP 动态流式传输或 HDS 是Adobe 开发的一种自适应比特率流式传输方法。HDS 通过HTTP连接提供 MP4 视频内容。HDS 可用于点播流式传输或实时流式传输。由于它们是通过 HTTP 交付的,因此 HDS 流可以被缓存——通过内容交付网络 ( CDN ) 或另一个缓存服务器。
HDS 是为与 Adobe Flash Player 和 Adobe AIR 一起使用而开发的。Adobe Flash Player 已停产,现在有一家外部公司支持 AIR 而不是 Adobe。Apple 设备不支持 HDS。
什么是 Adobe Flash Player?
Adobe Flash Player 是一个用于播放视频内容的浏览器插件。多年来,Flash 插件是最普遍的将视频嵌入网页的方式。然而,在HTML5 视频元素发布后,Flash 不再是嵌入视频的主要选择。此外,Flash 有许多安全漏洞,使其变得危险。(例如,几个 Flash 漏洞允许攻击者在某人的浏览器中执行他们想要的任何代码。)
多年来,浏览器和操作系统逐渐放弃对 Flash 的支持,以避免发生安全事件。最后,Adobe 于 2020 年 12 月 31 日停止支持 Flash Player。
HDS 流媒体如何工作?
创建和交付 HDS 流的过程大致为:
- 服务器:在通过 HDS 流式传输视频文件之前,必须将它们从常规 MP4 转换为 F4F(分段 MP4)文件格式。F4F 视频文件包含音频、视频和元数据。因为文件是“碎片化的”,所以这三个元素可以彼此分开存储。
- HDS 视频使用H.264 编码,这是一种常见的编码标准。与许多其他流媒体技术一样,HDS 以多个质量级别对视频文件的版本进行编码,并将视频分成几秒钟长的较短片段。这使得自适应比特率流成为可能(在下面了解更多信息)。
- 分发: HDS 视频片段被推送到通过 Internet 请求流的客户端设备。CDN 通常有助于分发流,同时缓存流以更快地提供服务。
- 客户端:请求流的设备使用包含在元数据中的视频清单文件作为按顺序组合和播放视频片段的参考。它还可以根据需要更改图像质量。
什么是清单文件?
可以将清单文件与组装模型飞机的一组说明进行比较。方向指示每个部件的去向,使拥有模型套件的人能够自己制造飞机。
类似地,视频的清单文件告诉播放视频的客户端设备(例如用户的笔记本电脑或智能手机)如何按顺序组装视频片段、如何加载音频文件、存储字幕的位置等等。这允许客户端设备正确地构建和播放视频。
清单文件存储在视频元数据中。文件的“元数据”是关于文件其余部分的信息。
什么是自适应比特率流?
自适应比特率流是一种允许视频播放器根据网络条件调整视频质量级别的技术。如果网络连接运行缓慢,则播放器会加载质量较低的视频片段,而这些视频片段可以更快地加载。如果网络连接性能更好,则播放器会加载高清视频。这些调整是在视频播放时进行的。
自适应比特率流式传输是可能的,因为流式传输视频被分成多个片段并以几个不同的质量级别进行编码。因此,播放器可以为每个视频片段从多个质量级别中进行选择。在每个片段之后,玩家可以根据需要切换到更高或更低的质量级别。
HDS 使用自适应比特率流,类似名称的HTTP 实时流 (HLS)也是如此。
HLS 与 HDS:有什么区别?
HLS 是使用最广泛的流协议之一。HLS 最初是由 Apple 开发的专有流媒体协议,尽管此后它已成为一个开放标准。Apple 设备仍仅支持 HLS。
这两种流媒体方法之间的一个重要区别是,HDS 的支持和采用不如 HLS 广泛。截至 2021 年,Apple 占据了全球智能手机市场近四分之一的份额,因此使用 HDS 会减少大量潜在观众。事实上,HDS 是为与已停产的 Adobe Flash 一起使用而设计的。今天,相对较少的观众可能拥有可以播放 HDS 流的设备。