你真的了解WebRTC吗?WebRTC的核心是什么?

章鱼测评 2024-09-16 19:36:30

近年来,我们在很多项目中,都会用到WebRTC技术进行系统的整合和开发。那么你真的了解WebRTC吗?

WebRTC(Web Real-Time Communication)是一种支持浏览器和移动应用程序进行实时通信的开源技术。它使音频、视频和数据能够在没有中介服务器的情况下,直接在设备之间传输,从而实现低延迟的通信。WebRTC是由谷歌支撑的开源项目,在目前市场上有较高的占有率,和未来的发展前景。

WebRTC我们从名字上就可以看出。其是一种实时通信协议。那么实时通信协议究竟是什么呢?比如我们拨打视频通话,可以看到双方的画面,也可以通过声音相互交流,这就是一种实时通信协议。或者我们召开视频会议,上网课,视频直中的连线互动等等都属于实时通信协议。

也就是说,实时通信是一种具备双向交互的协议,无论是视频和音频,都应该具有交互的能力。如果需要这种交互能力,实时通信是非常重要的,实时通信对视频的质量,延迟等要求更高。

我们来对比一下。比如我们调看一个视频监控画面,或者我们看一个电视直播。这些视频的流媒体处理都是单向的,对实时性要求并不高,在一两秒内甚至十几秒的延迟都是可以接受的。这并不是技术的落后。而是很多业务在设计之初并不需要更高的实时性。因此我们可以看到,WebRTC的核心优势就是低延迟,低延迟,还是低延迟。

关于视频的延迟

通信延迟给人的感受

实时通信对于视频的延迟是非常高的。我们来看一下,不同的视频延迟所产生的效果。一般来讲,音视频的延迟在200ms以内,双方的通信效果是非常好的,感觉像是在面对面聊天。300ms以内质量也还不错。超过500ms就已经可以感觉到明显的延迟,会影响互动的效果了。

不同协议的平均延迟

那么各种流媒体协议由于设计初衷不同,其延迟也是有很大的不同。比如我们常见的RTMP流媒体协议,平均延迟就在3s左右。HTTP_FLV也在3s左右,而HLS,也就是我们看电视直播的M3U8更是高达10s以上。但是这并没有问题。对于电视节目的播放,早10s看到与晚10s看到没有本质的不同。

因此我们要清楚的知道事实通信和单向的流媒体协议的不同。包括我们常用的电话协议SIP都是具备实时通信能力的RTC类协议标准,因此都有极低的延迟。

WebRTC的应用

由于WebRTC具备极低的延迟和双向的通信能力,因此被越来越多的用来设计各种业务系统,比如调度指挥系统,视频会议系统,软电话系统等等。这些系统大多数情况下都需要双向的视频交互和较低的视频延迟。

专注于实时通信的WebRTC

由于WebRTC的低延迟优势,很多综合业务平台也采用WebRTC的架构设计,比如在视频监控业务平台中也使用WebRTC来提高视频播放的效果。甚至利用摄像头的对讲等能力实现双向通信。但是这一应用面临一个棘手的问题。

WebRTC不支持H.265

由于版权和商业竞争的因素,WebRTC是不支持H.265的,其主要兼容VP8,VP9,AV1,H.264视频编码。其中主要由谷歌推动的视频编码和应用非常广泛的H.264编码构成。

这在大多数情况下可以满足各种项目开发的需求。但是由于视频监控是率先使用和推广H.265视频编码的行业。因此大量的视频监控采用H.265视频编码。这就导致在很多视频融合项目中,如果需要集成视频监控系统,那么通过WebRTC是无法调看视频监控画面的。

视频转码服务器的能力架构

目前主流的做法是通过视频转码来实现系统的兼容性。比如思载科技的视频转码服务器,可以单设备实时并发转码16路1080P的视频,将H.265编码实时转换为H.264编码。并内置了WebRTC demo,WebRTC网页电话,轻松可以集成各种实时通信应用。并发16路视频转码是并发概念,其实已经可以满足大部分项目集成的应用需求。

内置WebRTC网页电话呼叫国标摄像头

很多人会担心。视频转码后的延迟问题。思载科技的视频转码服务器采用GPU转码方案,转码延迟在40ms以内。利用WebRTC协议的优势,在转码后,时延仍然控制在双向实时交流无延迟感的范围,给用户极佳的应用体验。

目前市场上也有一些解决方案,宣称可以在WebRTC下解决H.265的问题。那么很多小伙伴一定感到困惑。WebRTC既然可以支持H.265了,那项目开发过程中不是方便了吗?

这就要小心别掉坑里。目前很多WebRTC播放H.265的解决方案上采用WebRTC的数据通道传输FLV流媒体视频。FLV是可以播放H.265的。这样做表面上解决了WebRTC播放H.265的问题。但实际上对于项目开发隐患重重。

WebRTC的数据通道是用来设计走一些白板数据的,用来传输FLV也可以。但是如前章节所述,FLV的平均延迟是3s。也就是说WebRTC的优势,低延迟,低延迟,低延迟荡然无存。换句话说,如果只是简单的视频监控画面呈现,那么为什么不直接用HTTP_FLV或者WS_FLV的方式呢?这一方案可以满足大部分基于网页的视频播放应用,开发难度也低于WebRTC,对于H.265也有更好的视频兼容性。

通过视频转码方案,不影响任何RTC类的应用,不增加开发难度。一切按协议标准化开发即可。特别是视频转码服务器内置了实时通信服务器的能力和视频融合能力,可以方便的扩展视频电话,可是对讲,视频会议,无人机,布控球,安全帽,记录仪的视频回传,视频通信应用。不必考虑编码和各种协议之间转换的复杂问题。让WebRTC类应用落地更容易。

0 阅读:0

章鱼测评

简介:分享面向行业的产品和解决方案。