观看 IP 摄像机:WebRTC 与 HLS

两种向浏览器传输视频的方式有何不同,以及为什么无需手动选择

WebRTC 与 HLS 解决的是同一个任务——把视频流展示给观众——但组织传输的方式不同。WebRTC 面向低延迟,而普通 HLS 依赖分段下载和播放缓冲区。

RTSP.ME 同时支持两种方式,并会自动选择播放方式。用户无需在 WebRTC 和 HLS 之间手动选择。

下面我们来看每种方式如何影响延迟、播放稳定性以及与观众设备的兼容性。

接入 IP 摄像机

摄像机的 RTSP 与浏览器播放不是一回事

IP 摄像机可以通过 RTSP 将视频流传入服务。而视频从服务传到浏览器是另一个独立环节,这一环节使用 WebRTC 或 HLS。

IP 摄像机 → RTSP 流 → RTSP.ME → WebRTC 或 HLS → 浏览器中的播放器

摄像机无需自带 WebRTC 支持。重要的是其视频流符合服务的接入要求。仅仅选择向浏览器传输的方式,并不能让摄像机的任意编解码器兼容观众的任意设备。

WebRTC 与 HLS:对比

表格描述的是技术的一般特性,而非某条具体直播的保证参数。除非另有说明,此处的 HLS 指普通的分段传输。

参数WebRTCHLS
传输方式传输媒体数据以实现实时播放通过 HTTP(S) 下载播放列表和视频分段
延迟通常低于普通 HLS;取决于整条链路由于生成分段和累积缓冲,通常较高
典型任务需要快速响应的监控和互动场景允许与事件存在一定延迟的直播观看
缓冲较小的缓冲有助于降低延迟,但应对网络波动的余量更少缓冲可以平滑短暂的速度波动,代价是延迟增加
网络NAT、防火墙和 UDP 限制可能妨碍连接HTTP(S) 传输便于融入 Web 基础设施,但同样受网络限制和质量影响
大量观众需要用于维护连接和分配负载的基础设施经适当配置后,分段可兼容 HTTP 缓存和 CDN
浏览器与编解码器需要浏览器、设备以及所传输的视频和音频编解码器相互兼容取决于编解码器和播放器;并非所有浏览器都能原生播放 M3U8
传输保护媒体传输经过加密当播放列表和分段通过 HTTPS 提供时,传输受到保护

WebRTC:优势与限制

当低延迟很重要时

WebRTC 面向媒体数据的实时传输。当需要更快看到画面变化,或在聊天中与观众讨论正在发生的事情时,它很有用:视频延迟更小,有助于把消息与屏幕上的事件对应起来。

哪些因素可能妨碍观看

NAT、防火墙和 UDP 封锁可能使连接建立变得困难。在此类网络中能否工作,取决于媒体服务器的配置和可用的连接方式。如果在企业网络中无法启动播放,应与网络管理员一起检查其限制。

丢包、链路不稳定、服务器或观众设备过载都可能导致画质下降和中断。低延迟不等于零延迟:拍摄、编码、传输、处理和显示画面都需要时间。

HLS:优势与限制

通过常规 Web 基础设施传输

HLS 使用播放列表(通常扩展名为 M3U8)和一系列媒体分段。播放器通过 HTTP 或 HTTPS 下载它们,并形成用于播放的数据储备。

实际的扩展能力取决于服务器资源、带宽和传输设置:仅选择 HLS 不足以服务大量观众。

延迟与兼容性

生成分段并在缓冲区中累积,通常会使延迟高于 WebRTC。如果下载速度长期低于视频流的码率,缓冲区会耗尽,播放可能停止。HLS 无法让薄弱的网络变得可靠。

并非所有浏览器都能直接打开 M3U8:可能需要借助浏览器能力的 JavaScript 播放器。支持 HLS 本身并不保证能播放任意视频或音频编解码器。

请勿将普通 HLS 与 Low-Latency HLS(LL-HLS)混淆。LL-HLS 是用于降低延迟的变体,需要服务器和播放器双方支持。存在 HLS 本身并不意味着支持 LL-HLS。

RTSP.ME 如何进行选择

服务支持 WebRTC 和 HLS,并会自动选择播放方式。用户接入摄像机并在播放器中打开直播即可;无需手动选择观看协议。

自动选择让您无需在每次观看前自行比较协议。但它并不取消对源视频流、浏览器和网络的要求。

即使采用自动选择,不稳定的互联网、网络限制或不兼容的编解码器仍可能妨碍观看。切换传输方式无法修复摄像机源视频流的故障。

编解码器、音频与安全性

分别检查视频和音频

播放取决于浏览器、操作系统、设备、摄像机的视频编解码器及其配置,以及服务器和播放器处理视频流的能力。协议名称并不保证兼容性。

对于音频,音频编解码器至关重要。即使音频不兼容,画面也可能正常显示。此外,浏览器可能在用户操作之前阻止带声音的自动播放:没有声音并不总是意味着摄像机故障。

加密不能替代访问控制

WebRTC 使用加密的媒体传输。当播放列表和分段通过 HTTPS 传输时,HLS 会保护传输中的数据;HLS 本身并不意味着必须使用 HTTPS。

服务到浏览器这一环节的保护,并不决定摄像机接入服务的安全性。传输加密同样不能替代观众权限验证、访问限制和摄像机凭据保护。发布前请确认直播仅对目标受众开放。

实用建议

  1. 明确观看任务。需要快速响应时,实际延迟很重要;全景直播则还需要长期稳定。在 RTSP.ME 中,无需把这些需求转化为手动协议选择。
  2. 检查源视频流。确认摄像机稳定传输视频,且视频和音频参数符合服务要求。码率过高可能使摄像机侧链路过载。
  3. 检查观众设备。在电脑和手机的目标浏览器中打开直播。分别检查启动、声音和长时间观看。
  4. 比较允许的网络。如果在企业网络中无法观看,请与其他可用网络比较结果,并与管理员讨论限制。不要为了直播而关闭网络防护。
  5. 评估整条链路。延迟和停顿取决于摄像机、到服务的链路、服务器、观众网络和播放器。WebRTC 和 HLS 都无法修复缺失的源视频流。
  6. 联系技术支持时说明情况。请提供浏览器、设备、问题发生时间和症状。不要公开分享包含密码的 RTSP 链接或其他机密信息。

不应把 WebRTC 和 HLS 分为“好”协议和“坏”协议。它们在延迟、缓冲和传输组织方式上有不同的取舍,最终效果需要在具体直播中验证。

通过 RTSP.ME 观看您的 IP 摄像机

将摄像机接入服务。播放所用的 WebRTC 或 HLS 会自动选择——无需手动设置协议。

接入摄像机

常见问题

在 RTSP.ME 中需要在 WebRTC 和 HLS 之间做选择吗?
不需要。RTSP.ME 同时支持 WebRTC 和 HLS,并会自动选择播放方式。用户无需手动选择协议。但这并不保证在任何网络中都能连接成功,也不保证发生故障时能够无感切换。
WebRTC 的延迟总是比 HLS 低吗?
WebRTC 面向低延迟设计,通常比需要在缓冲区中累积分段的普通 HLS 更接近实时。但最终延迟取决于摄像机、网络、服务器和播放器:不保证零延迟或固定延迟。
IP 摄像机必须支持 WebRTC 吗?
不需要。服务入口处的 RTSP 与浏览器播放所用的 WebRTC 或 HLS 是视频传输中不同的环节。摄像机无需自带 WebRTC 支持,但其视频流和编解码器必须符合服务要求。
视频和音频能在任何浏览器中播放吗?
没有通用保证。兼容性取决于浏览器、设备、视频编解码器及其配置、音频编解码器以及播放器的能力。HLS 可能需要 JavaScript 播放器:并非所有浏览器都能直接播放 M3U8。有画面并不保证音频兼容。
为什么无论采用哪种播放方式,直播都可能中断?
原因可能在于摄像机、到服务的链路、服务器、观众的网络或播放器。WebRTC 可能因 NAT、防火墙和 UDP 限制而遇到困难。HLS 缓冲有助于度过短暂的速度波动,但无法解决长期带宽不足。