什么是HTTP实时流?HLS是如何工作的?
HTTP 直播流 (HLS) 是使用最广泛的视频流协议之一。虽然它被称为 HTTP“实时”流,但它同时用于点播流和实时流。HLS 将视频文件分解为更小的可下载 HTTP 文件,并使用HTTP协议交付它们。客户端设备加载这些 HTTP 文件,然后将它们作为视频播放。,HLS 的一个优点是所有连接到 Internet 的设备都支持 HTTP,这使得它比需要使用专用服务器的流协议更容易实现。另一个优点是 HLS 流可以根据网络条件提高或降低视频质量,而不会中断播放。这就是为什么在用户观看视频的过程中,视频质量可能会变得更好或更差。此功能称为“自适应比特率视频传输”或“自适应比特率流”,如果没有它,缓慢的网络条件可能会完全阻止视频播放。HLS 由 Apple 开发,用于 Apple 产品,但现在已用于各种设备。,, 什么是流媒体?,流媒体是一种通过 Internet 向用户提供视频和音频媒体的方式。它的工作原理是一次一点点地连续将媒体文件发送到用户的设备,而不是一次全部发送。原始媒体文件被远程存储,或者在直播的情况下,使用远程摄像头或麦克风实时创建。这样,无需用户设备先下载整个文件即可播放视频或音频。, 什么是 HTTP?,HTTP 是一种应用层协议,用于在连接到网络的设备之间传输信息。普通用户可以访问的每个网站和应用程序都运行在 HTTP 上。HTTP 上的数据传输通常基于请求和响应。几乎所有的 HTTP 消息要么是请求,要么是对请求的响应。,通过 HTTP 流式传输,标准的请求-响应模式不适用。客户端和服务器之间的连接在流的持续时间内保持打开状态,服务器将视频数据推送到客户端,这样客户端就不必请求每一段视频数据。, HLS 是如何工作的?,服务器: HLS 流源自存储媒体文件(在点播流中)或创建流的位置(在实时流中)的服务器。因为 HLS 基于 HTTP,所以任何普通的 Web 服务器都可以发起流。,服务器上发生两个主要过程:,1.编码:视频数据被重新格式化,以便任何设备都可以识别和解释数据。HLS 必须使用H.264或 H.265 编码。,2.分段:视频被分成几秒钟长的片段。段的长度可能会有所不同,但默认长度为 6 秒(直到 2016 年为 10 秒)。,3.除了将视频分割成片段外,HLS 还会创建视频片段的索引文件以记录它们所属的顺序。,4.HLS 还将创建多个不同质量级别的重复片段集:480p、720p、1080p 等。,分发:当客户端设备请求流时,编码的视频片段通过 Internet 推送到客户端设备。通常,内容交付网络 (CDN)将帮助将流分发到地理上不同的区域。CDN 还将缓存流以更快地将其提供给客户端。,,客户端设备:客户端设备是接收流和播放视频的设备——例如,用户智能手机或笔记本电脑。客户端设备使用索引文件作为按顺序组装视频的参考,并根据需要从较高质量的图像切换到较低质量的图像(反之亦然)。, 什么是 HLS 中的自适应比特率流式传输?,HLS 相对于其他一些流式传输协议的优势之一是自适应比特率流式传输。这是指随着网络条件的变化在流的中间调整视频质量的能力。即使网络条件变差,这种能力也可以让视频继续播放;相反,它还可以最大限度地提高视频质量,使其达到网络可以支持的最高水平。,如果网络速度变慢,用户的视频播放器会检测到这一点,并且自适应比特率流会降低流的质量,以便视频不会停止播放。如果有更多的网络带宽可用,自适应比特率流式传输会提高流式传输的质量。,自适应比特率流是可能的,因为 HLS 在分段过程中创建了多个不同质量级别的重复分段流。用户的视频播放器可以在视频播放期间从这些流之一切换到另一个流。, HLS 是否使用 TCP 或 UDP 作为其传输协议?,TCP和UDP是传输协议,这意味着它们负责通过 Internet 传递内容。TCP 往往比 UDP 更可靠地传递数据,但后者要快得多,即使某些数据在传输过程中可能会丢失。,由于 UDP 速度更快,一些流协议使用 UDP 而不是 TCP。然而,HLS 使用 TCP。这有几个原因:,1.HLS 基于 HTTP,并且 HTTP 协议是为与 TCP 一起使用而构建的(有一些例外)。,2.与最初开发流媒体时相比,现代互联网更加可靠和高效。在当今世界的许多地方,用户连接已经大大改善,特别是对于移动连接。因此,用户有足够的带宽来支持每个视频帧的传输。,,3.自适应比特率流有助于补偿 TCP 可能较慢的数据传输。,4.HLS 流不需要像视频会议连接那样是“实时的”。额外几秒钟的延迟不会像丢失视频帧那样影响用户体验。,流式传输通常使用哪些其他协议?,有许多与 HLS 类似的协议,例如MPEG-DASH和HDS,它们也通过 HTTP 运行并提供自适应比特率流。在 RTMP 或 HDS 上运行的 Adobe Flash 曾经是用于视频流的主要技术;但是,许多浏览器不再支持 Flash。RTMP 仍在使用中,尽管对它的支持正在下降。, ,HTTP 直播流 (HLS) 是使用最广泛的视频流协议之一。虽然它被称为 HTTP“实时”流,但它同时用于点播流和实时流。HLS 将视频文件分解为更小的可下载 HTTP 文件,并使用HTTP协议交付它们。客户端设备加载这些 HTTP 文件,然后将它们作为视频播放。,HLS 的一个优点是所有连接到 Internet 的设备都支持 HTTP,这使得它比需要使用专用服务器的流协议更容易实现。另一个优点是 HLS...