在过去的几十年里,在线传输视频内容的方式发生了翻天覆地的变化。虽然 Adobe 的 Flash 在 90 年代和 2000 年代曾是家喻户晓的名字,但随着在线视频流的兴起,它几乎消失了。如今,像 HLS 这样的新视频流协议可以实现更快、更可靠和更安全的视频内容交付。
什么是 HLS?
HTTP 直播或 HLS 是一种流媒体协议,用于通过互联网向消费者提供媒体内容。它是一种流行的流媒体协议,广泛用于流媒体视频内容,包括直播和点播。
HLS 如何工作?
HLS 交付内容的过程涉及几个步骤。
首先,编码器获取原始输入(音频或视频)并生成压缩流,用于媒体的传输和存储。
然后,流媒体服务器将这个流分成一系列小的媒体文件,放置在网络服务器上。该流媒体服务器还创建并维护一个包含媒体文件列表的索引文件,该文件被描述为 M3U8 播放列表。 M3U8 播放列表的 URL 发布在网络服务器上。
当最终用户想要通过 HLS 获取流时,播放器会读取 M3U8 索引并以正确的顺序请求列出的媒体文件,并将它们显示为一个连贯的文件。
自适应比特率流
自适应比特率流式传输 (ABR) 是 HLS 的一项功能,使其在流媒体协议中脱颖而出。这是一项允许视频质量根据网络条件进行调整的功能,即使在流的中间也是如此。因此,即使最终用户的网络连接出现波动,视频仍会继续播放——如果连接速度变慢,则以较低质量播放,而当连接恢复到高水平时,则以最高质量播放。
HLS 的优点
HLS 具有许多优势,使其成为一种受欢迎的流媒体协议,例如:
-
- 兼容性:HLS 支持在各种设备(智能手机、平板电脑和笔记本电脑)上使用流媒体内容。
- 流畅播放:ABR 功能使 HLS 对视频流非常有用,尤其是在不能中断的广播期间,即使以质量为代价也是如此。
- 成本效益: 由于 HLS 基于 HTTP,可以通过内容分发网络进行分发,无需在任何设备上进行扩展,因此也具有成本效益。
- 安全: 与 Flash 等解决方案相比,HLS 也是一种更安全的协议。
- 可扩展性: HLS 可以扩展流媒体以同时支持全球数百万观众,而不会影响质量。
HLS 的缺点
尽管有这些好处,但 HLS 并不完美,而且绝对不是满足所有流媒体需求的单一解决方案。以下是 HLS 流式处理的两个常见缺点。
- 高延迟: 与其他一些流媒体协议相比,HLS 具有更高的延迟。这意味着观众在使用 HLS 流媒体内容时会遇到长达 30 秒或更长时间的延迟。
- 网速慢:由于延迟相对较高,HLS 流可能不适合需要快速直播的用例,例如视频游戏或体育广播。
阅读更多:
什么时候最好使用 HLS 流?
HLS 可能不是一直使用的最佳流媒体协议。但是,对于某些特定情况和注意事项,它可能是最佳选择。
最适合移动设备
当您的消费者使用他们的移动设备和平板电脑查看流媒体内容时,HLS 流媒体是理想的选择。由于当今有很大一部分网络流量来自手机,因此您的流媒体解决方案必须与这些设备兼容。因此,HLS 对于移动流媒体来说几乎是必不可少的。
最适合 HTML5 视频播放器
由于 HTML5 视频播放器几乎已成为在网站、应用程序和移动设备上播放视频内容的默认标准,因此流媒体协议应该与该技术兼容。与其他一些协议不同,HLS 受 HTML5 支持,您可以使用它向视频播放器传送内容。
HLS 与其他流媒体协议
在 HLS 之前还有其他协议在使用,这些协议今天仍然存在,甚至在某些场景中得到优先考虑。这是常见的与HLS的比较。
- HLS 与 RTMP
实时消息协议或 (RTMP),也称为 Flash,曾经是一种常见的流媒体协议。但由于现代浏览器正在逐步取消对 Flash 的支持,今天正在失败。但它仍然被许多广播公司使用,因为它是从摄像机或编码器捕获视频流的标准协议。
- HLS 与 MSS
MSS 代表 Microsoft Smooth Streaming,是另一种使用 ABR 进行直播的协议。但它输给了 HLS,因为它是 Microsoft 设备的专有技术,因此采用有限。它在 Xbox One 游戏机中得到了最大的采用。
- HLS 与 MPEG-DASH
MPEG-DASH 代表 Moving Picture Experts Group-Dynamic Adaptive Streaming Over HTTP,是第一个基于 HTTP 的国际流媒体协议。它的独特价值在于几乎可以通用地播放视频,支持包括H.264、H.265、VP8/9和AV1在内的格式。
阅读更多:
什么是低延迟 HLS 及其如何降低延迟
迄今为止,HLS 一直是一种优先考虑质量和可靠性而不是延迟的协议。但 Apple 正在应对这一挑战并引入低延迟 HLS 进行创新。这可以将通过公共网络流式传输时的视频延迟降低到标准电视广播中的预期水平。
CDNetworks 还提供其 直播解决方案 支持这种低延迟 HLS,其目标是在保持可靠性的同时减少延迟。
CDNetworks 对 HLS 的调优
除了低延迟 HLS 之外,经过良好调优的 HLS 也是低延迟直播的一种选择。 CDNetworks作为HLS的早期采用者,擅长HLS微调。下面我们提供了几种方法来减少通过 HLS 进行流式传输时的延迟。
为第一个 HLS 播放列表设置块数
通常,流媒体服务器在使用 HLS 时必须在播放前存储足够的块。这取决于玩家。播放通常在播放器获得第一个包含 3 个块的 HLS 清单后开始。然而,有些播放器支持小于 3 的块数。在这种情况下,您可以调整此数字来决定在播放开始之前在第一个清单中接收和打包的块数,以减少延迟。
减少关键帧间隔
关键帧间隔,又称GOP(图片组),是影响块大小的关键因素。由于 HLS 块将在关键帧边界上创建,因此您设置的 GOP 越大,您拥有的块就越大,这可能决定您的直播会有多少延迟。通过 OBS 和 Wirecast 等编码器推流时,我们建议将 GOP 设置为 2~3 秒。
设置存储的最小块数
CDNetworks 的直播解决方案将存储多个块以获得更好的流媒体性能。我们建议在交付前至少存储 3 个块。当然,该数字可以设置为较小的值以获得较低的延迟。但是存储的块越少,播放滞后的可能性就越大。
结论
在过去的几年里,视频流领域出现了一连串的活动。在新流媒体协议的兴起和更广泛的互联网普及的帮助下,越来越多的企业开始接受视频流媒体提供的机会。
HLS 是当今流媒体视频支持最广泛的协议之一。如果您的业务基于向最终用户提供高质量的视频流而不会出现任何重大中断,那么 HLS 是您绝对应该考虑的一种协议。