目前,全球范围内收集和传输视频的智能摄像机数量不断增加。当然,其中许多摄像头用于安全目的。
事实上,全球视频监控市场预计将达到未来五年将达到 830 亿美元。但除了安全之外,还有许多其他用例,包括远程工作、在线教育和数字娱乐。
在支持这些用例的各种技术中,网络实时通信 (WebRTC) 和实时流协议 (RTSP) 脱颖而出,成为两个首选选项。以下是您需要了解的有关 WebRTC 与 RTSP 及其对各种流媒体需求的适用性的信息。
WebRTC 基础知识
让我们从 WebRTC 开始,它是一种通信协议,允许直接在网络浏览器中实时传输音频和视频。 Google 开发了 WebRTC,但它现在是一个开源项目,拥有广泛的支持和完整的文档。
当您通过浏览器进行视频通话时,WebRTC 会处理将您的视频和音频数据传输给通话对象,反之亦然。因此,您无需下载Skype等专门的通讯软件;您只需通过浏览器与 Google Meet 等工具聊天即可。
WebRTC 功能
WebRTC 有一些与众不同的功能。其一,该协议会根据您的互联网速度调整通话质量。因此,如果您的网速较低,您的视频可能会变得模糊,但您通常不必担心失去连接。该协议还对传入和传出的数据流进行加密,这意味着视频流是私密且安全的。最后,它还提供了一个用于发送文件或文本聊天的数据通道,因此它不仅仅限于视频。
也许 WebRTC 最重要的方面是它的 点对点 (P2P),这意味着它不必通过服务器传输。这可以实现更高的性能和更低的延迟,或者在互联网上尽可能“实时”(直接从 A 到 B)。 P2P 通信就像给住在两小时路程外的朋友写信一样。您可以通过邮局发送信件,但信件总是存在在不同地点被延误的风险。
如果您直接将信交给您的朋友,您可以确保您的信将在两个小时内送达,而不是几周。因此,P2P 通信比基于服务器的通信更直接且通常更快。
WebRTC 的工作原理
通过 WebRTC 进行 P2P 通信涉及一些技术步骤。第一个是信号。将 WebRTC 信号视为安排会议的过程。两个人见面之前,需要交换见面时间、地点、议程等信息。类似地,在WebRTC中,信令是两个设备交换必要信息以建立实时通信会话的初始安排阶段。
下一步是媒体捕获,它允许您的浏览器访问设备的摄像头和麦克风以收集视频和音频等流数据。
接下来是网络地址转换 (NAT) 遍历。 NAT 是路由器用来将本地网络内的专用 IP 地址转换为单个公共 IP 地址以进行 Internet 访问的方法。这就像一个用于房子里所有设备的单一邮寄地址。另一方面,NAT 穿越是一种允许不同 NAT 后面的设备建立直接对等连接的技术。这类似于在两个房屋之间安排一条直接通信线路,每个房屋都有自己独特的邮件系统,使它们能够绕过标准邮件路线并直接连接。
一旦调用完成并且浏览器通过 NAT 遍历建立连接,下一步就是传输数据。在整个通话过程中,WebRTC 保持稳定的连接,然后在会话结束时,该协议允许对等方安全地关闭连接 – 相当于在通话结束时挂断电话。
何时使用 WebRTC
WebRTC 的最大优势之一是它可以跨多个平台和浏览器工作。例如,如果您使用 Chrome,但您的朋友使用 Edge,您仍然可以流式传输视频。它也很容易访问。例如,与使用 Skype 时不同,您无需下载单独的应用程序。您只需在浏览器中打开链接即可。
您可能会使用 WebRTC 的一些情况包括流式传输各种事件,例如音乐会、体育赛事、交互式网络研讨会、在浏览器之间共享敏感文件或数据、将视频片段从智能相机流式传输到浏览器、或实时多人游戏等等。
了解 RTSP
实时流协议 (RTSP) 并不完全是像 WebRTC 那样的视频流协议。相反,它是一种网络控制协议。换句话说,您可以使用它发送视频播放命令,例如播放、暂停等,就像您使用手持遥控器控制流媒体设备一样。
因此,与 WebRTC 不同,RTSP 只是用于建立和控制媒体流,而不是传输媒体流的实际工具。它启动流会话,然后允许客户端远程控制源。例如,在智能监控系统中,RTSP 可让您实时启动和停止来自安全摄像头的视频源,因此您的命令几乎立即到达您要控制的设备。
RTSP 功能
RTSP 本质上不是 P2P 协议,尽管在某些情况下可以在该上下文中使用它。一般来说,RTSP 通过托管和流媒体内容的服务器发送命令,因此服务器实际上执行了大部分工作,而 RTSP 仅发送命令。服务器不一定是云服务器;它可以是一个“逻辑”服务器(如在客户端-服务器范例中),因此 RTSP 服务器可以在专用网络上的 IP 摄像机上运行。 RTSP 仅用于控制播放以及流的开始或停止,而不是实际的媒体传输。
因此,对于实际的媒体流,您需要将 RTSP 与其他协议配对。最常见的是实时传输协议(RTP)。 RTP 负责传输和传输音频和视频数据。
除了 RTP 之外,RTSP 还经常与传输控制协议 (TCP) 配对,从而允许 RTSP 通过 Internet 传输命令。 TCP 注重可靠性,会重新传输任何丢失或损坏的数据包,因此在可靠性最重要的情况下,它与 RTSP 结合使用。如果需要通过防火墙建立视频流连接,开发人员还可以执行 TCP 隧道来建立基于 p2p 的隧道,而无需防火墙的麻烦。
RTSP 与 TCP 的工作原理
基本上,与 WebRTC 相比,RTSP 需要一些额外的设置,以便流可以通过防火墙。开发人员可以自行配置防火墙来接收 RTSP 流,也可以使用 TCP 隧道来解决问题。
TCP 隧道是一种允许视频系统绕过防火墙的技术。防火墙在执行 TCP 隧道时看不到 TCP 流量。相反,TCP 隧道服务通过防火墙传输 UDP 数据包;在隧道的每一端(即每一端的应用程序(客户端和设备/服务器))将这些数据包与 TCP“转换”。
因此,在许多视频场景中,RTSP/TCP 是最有意义的模式,尽管使用可靠传输会影响性能。
何时使用 RTSP
许多较旧的监控摄像头设计在其软件堆栈中内置了 RTSP 服务器,用于本地处理摄像头视频源。如果您要将此类摄像机集成到系统中,通常会使用 RTSP + TCP 隧道。另一方面,如果您有一个支持 WebRTC 视频协议的较新的相机软件堆栈,您可能会使用它。但这也取决于您的后端和中间件支持什么。 RTSP 对于用户想要从远程位置控制视频播放的系统非常有用,例如家庭安全或无人机流媒体。
用例
WebRTC 最初专门用于浏览器到浏览器的通信,因此它最初并不适合您想要从智能手机控制摄像机或通过其查看源的情况一个应用程序。但现在 WebRTC 与 IoT 和 Android 应用程序以及 IoT 连接软件兼容。同时,RTSP 和 RTP 不具备 WebRTC 的安全特性或低延迟,但与 TCP 隧道。
由于其所有专业功能,WebRTC 主要用于物联网环境中的双向通信,例如远程医疗会议、远程工作和其他视频会议场景,现在也用于移动-基于视频监控的控制。相比之下,RTSP/RTP 主要用于安全摄像头以及从一个源到多个设备的广播。
最终想法
WebRTC 与 RTSP 之间的选择是一个复杂的主题,许多不同的因素可能会影响您选择使用哪种协议。但归根结底,两者都是物联网生态系统的重要组成部分——尤其是在视频流领域。