流媒体技术在实现实时通信方面发挥着至关重要的作用,了解它们的差异至关重要。如今,有很多视频会议平台利用不同的流媒体传输协议来实现实时通信和高质量的视频流,选择最好的平台可能具有挑战性。
在本文中,我们将比较两种流行的流媒体协议:HLS 和 WebRTC。我们将深入研究延迟、交付方法、灵活性、视频质量、安全性、可扩展性和成本等各个方面。让我们深入了解 HLS 和 WebRTC 的世界,以做出明智的决定。
什么是HLS?
HLS(即 HTTP Live Streaming)是一种广泛采用的流媒体协议,旨在通过互联网传输媒体内容。HLS 由 Apple 于 2009 年推出,通过实现自适应流媒体和广泛的设备兼容性,彻底改变了流媒体领域。
在 HLS 工作流程中,媒体内容被编码为多种质量变体,从而创建具有不同比特率和分辨率的多种变体。每个变体都分为小段,通常持续时间为 2-10 秒,并托管在内容交付网络 (CDN) 上。然后,这些片段通过 HTTP 传送到客户端设备。
HLS 的主要优势之一是自适应流式传输,也称为 ABR(自适应比特率流式传输)。这使得客户端设备能够根据网络状况和可用带宽动态调整流的质量,即使在网络状况波动的情况下也能确保流畅的播放。
由于其与多种设备和浏览器的兼容性,HSL 在过去十年中得到了普及。如今,HLS 已广泛应用于直播、视频点播和在线活动等应用中。
HLS 与低延迟 HLS
HLS 最初设计时注重可靠性而非速度,因此在 6 – 30 秒的延迟下,它可能不是最快的协议。这种设计流程提出了延迟流媒体的问题以及对低延迟的需求,从而导致了 WebRTC 和通用媒体应用格式等协议的开发。
为了解决此缺陷,Apple 引入了低延迟 HLS (LL-HLS)。LL-HLS 本身并不是一个协议,而是 HSL 的优化变体,您可以将其视为 HLS 的扩展。它的主要开发目的是帮助最大限度地减少视频捕获和传输之间的延迟(减少延迟。)
那么LL-HSL是如何实现低延迟的呢?LL-HLS 通过采用较小的块大小、减少的缓冲以及更快的编码和解码过程等技术来实现低延迟并实现播放。
虽然大多数组织将 HLS 和 LL-HLS 视为两种解决方案,但值得注意的是,这两者基本上是相同的。但是,大多数组织仍然将它们视为不同的解决方案,以帮助其供应商在选择协议时做出更好的决策。
什么是WebRTC?
WebRTC 是 Web Real-Time Communication(Web实时通信)的简称,是一种无需第三方插件或外部即可直接在 Web 浏览器内实现实时通信的技术。它提供了一组协议和 API,使开发人员能够将实时视频、音频和数据共享功能合并到 Web 应用程序中。
WebRTC 的核心由三个关键组件组成:getUserMedia、RTCPeerConnection 和 RTCDataChannel。getUserMedia 允许访问用户的摄像头和麦克风,从而实现实时视频和音频捕获。RTCPeerConnection 促进点对点通信,在浏览器之间建立直接连接以实现无缝数据传输。RTCDataChannel 支持浏览器之间的实时、双向数据交换。
WebRTC 为用户提供原生且无忧的体验。其点对点性质可确保低延迟通信并最大限度地减少服务器依赖性。
HLS 与 WebRTC 全面比较
延迟
从历史上看,由于分段和缓冲,HLS 的延迟范围为 10 到 30 秒。然而,随着 2019 年 Apple 全球开发者大会 (WWDC) 期间引入 LL-HLS,情况发生了变化。最初,HLS 和 LL-HLS 被视为独立的协议,直到 Roger Panton 将它们统一为同一解决方案的两个部分。LL-HLS 现在是 HLS 的一个组成部分,可提供低于 3 秒的延迟。
虽然不到 3 秒的延迟对于大多数应用程序来说已经足够,但某些场景需要更低的延迟。拍卖和远程医疗等交互式直播需要更接近实时的体验。对于超低延迟流媒体,WebRTC 延迟处于领先地位。然而,重要的是要考虑随之而来的权衡。
传输方法
在传输方式方面,HLS 和 WebRTC 采用了不同的方法。
首先,HLS 利用标准 Web 协议和现有网络基础设施进行基于 HTTP 的传输。这使得它与各种服务器和 CDN 高度兼容,提供高效的内容分发。
另一方面,WebRTC 采用更多 P2P 方法,利用实时协议 (RTP) 和实时控制协议 (RTCP) 等实时协议在浏览器之间建立点对点连接。更重要的是,WebRTC 在 UDP 上运行,允许它在客户端和服务器之间无需握手即可建立连接。这使得参与者之间可以进行实时通信,而无需中间服务器。
那么到底哪一方更占上风呢?WebRTC 专为 P2P 双向实时通信而设计,而 HLS 则依赖于 TCP 等其他协议。因此,WebRTC 固有的速度优势使其在交付方式上占据上风。但它也有代价,那就是更容易受到网络波动的影响。
灵活性和兼容性
实际上,HSL 是最灵活、最容易适应的协议,但当我们考虑到它的扩展 LL-HSL 时,事情就变得有点棘手。
作为人们的选择,HSL 得到了多种设备、浏览器和平台的广泛支持,并且与 CDN 完全兼容。此外,它与播放器无缝集成,并支持隐藏式字幕和字幕、元数据、数据权限管理和插入等令人兴奋的功能。
然而,当我们转向 LL-HSL 时,情况就变得有点复杂了。目前,LL-HSL 已经完成。有多种用户真正需要的功能目前不支持,这使得主流采用成为一个挑战。另外,它只支持苹果的原生播放器。然而,由于它支持浏览器,您根本不能忽视 LL-HSL。
WebRTC 怎么样?WebRTC 与大多数浏览器兼容,不需要额外的插件。它可以适应联播和可扩展视频编码 (SVC) 等工作流程,但实施可能需要努力和技术专业知识。
就灵活性和兼容性而言,没有明显的赢家。HLS 提供广泛的兼容性,LL-HLS 正在不断发展,WebRTC 提供本机浏览器支持。做出决定时请考虑延迟和实施要求。
视频质量
当谈到专业流媒体和会议时,自适应比特率 (ABR) 功能是协议可以拥有的最佳工具。它为观众提供一流的用户体验和视频质量,无论其设备或网络状况如何。
就视频质量而言,HLS(包括 LL-HSL)是目前最好的协议。正如我们上面提到的,单个视频的多个再现允许播放器通过自动调整视频流的质量来在不同带宽上提供高质量的视频播放。
另一方面,WebRTC 主要是为了实时延迟而构建的,因此视频质量并不是其首要任务。然而,这并不意味着它不提供高质量的视频。尽管它不提供 ABR 流,但 WebRTC 采用联播和选择性视频编码 (SFU) 来提高视频质量。与典型的联播不同,WebRTC 联播使用选择性转发单元,用于为每个播放设备选择最佳比特率选项。
WebRTC 还参与选择性视频编码 (SVC),这通常意味着它分层准备媒体文件。简单来说,每当比特率降低时,WebRTC 就会使用 SFU 来分层–可以把它想象成随着比特率的降低而剥洋葱。
虽然 HLS 是获得最佳视频质量的首选,但 WebRTC 提供了提高质量的方法并不断发展,使其成为更好的选择。
安全
安全性在流媒体技术中至关重要。HLS 通过加密、身份验证和 DRM 兼容性支持内容保护。LL-HLS 与 HLS 合并,提供类似的安全功能。
WebRTC 通过加密和身份验证确保安全通信,尽管它缺乏 DRM 兼容性。建议对 LL-HLS 使用 TLS 加密,而 WebRTC 使用 TLS 进行安全传输。
虽然 HLS 和 WebRTC 都优先考虑安全性,但高级功能可能需要定制。总体而言,HLS 提供全面的安全措施,而 WebRTC 提供带加密的安全通信。
可扩展性
当谈到可扩展性时,这两种协议都有其优点和缺点。
对于初学者来说,HLS 易于扩展,是该类别中的获胜者,但对于 LL-HSL,正如我们之前提到的,事情变得有点棘手。在 CDN 与 HSL 集成之前,LL-HSL 似乎是一个牵强的想法。然而,在过去的十年中,供应商一直致力于开发不断发展的直播规范,但直到最近他们才宣布支持。
虽然 LL-HSL 的延迟比 WebRTC 的延迟长,但它可以在接近 3 秒的时间内支持数千个流媒体。然而,LL-HSL 的开发仍在进行中,我们应该期待看到更多进展。
WebRTC 也不是小菜一碟。尽管 WebRTC 的延迟率要低得多,但单独而言,WebRTC 旨在支持小型聊天场景。然而,有许多开发人员和流媒体供应商正在使用超低延迟协议创建可扩展的解决方案。
因此,在可扩展性方面,我们还没有看到胜利者。
成本
就成本而言,WebRTC 可能显得更具成本效益,因为它是开源且免费的。但是如何扩展和支持大量用户呢?因此,虽然它可能是免费的,但您必须为自定义 WebRTC CDN 付费。
另一方面,HLS 使用现有的基础设施,例如基于 HTTP 和 TCP 的技术。HLS 具有较高的延迟,但使用 LL-HLS 可以解决这个问题。它还支持大多数平台认为理所当然的各种功能。
WebRTC 与 HLS 哪个更好?
在做出决定之前,我们先回顾一下:
HLS 非常适合需要更广泛兼容性、自适应流媒体和更广泛设备支持的场景。如果您想要流式传输事件或向大量受众提供内容,HLS 是您的首选协议。
另一方面,WebRTC 非常适合基于浏览器的实时通信。因此,如果您想举行视频会议、实时协作或互动游戏,那么您可以从 WebRTC 中受益。凭借其低延迟、直接 P2P 通信和浏览器支持,WebRTC 是交互体验的最佳选择。
要做出正确的选择,请考虑以下因素:
- 您的具体用例
- 所涉及的权衡
- 兼容性
- 视频质量
- 可扩展性
- 安全。
正如我们所看到的,延迟一直是流媒体传输协议的主要挑战。多年来,HLS 和 WebRTC 都取得了重大进展,包括 LL-HLS 以及 WebRTC 上的 STUN 和 TURN 服务器等创新,所有这些都旨在减少延迟并提高视频质量。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/webrtc/32183.html