阅读 393

H5和WebRTC实时通讯方案对比

目前,实时音视频通讯的实现方案在浏览器上有两种,分别是H5和WebRTC,前者可以拉流观看,后者可以实现推流和拉流。

正文

在浏览器上实现音视频实时通讯,H5和WebRTC是两种可选方案,但是二者有明显的区别,优劣也比较突出。

H5的实时通讯方案

浏览器H5的实时方案有明显的优势和劣势,优势是开发成本比较低,开发周期短,劣势是只能拉流,不能推流,不能实现互动连麦。另外,浏览器H5方案延迟比较大。

如果使用RTMP或者HTTP-FLV协议,延迟会在1秒到3秒之间,如果使用HLS协议延迟会更大,当然也可以通过限制ts分片大小实现较低的延时,太大的延迟是不适合做直播连麦的。但是对于类似大班课和会议的场景,上述媒体协议都是适合的,因为音视频流是单向的,没有延时上感知。

image.png

WebRTC的实时通讯方案

尽管浏览器H5方案非常普遍,开发方便但是不能连麦直播。那么在浏览器上能不能实现连麦直播呢?答案是肯定的,它就是WebRTC。最早是由谷歌发起的P2P实时通讯方案,在Chrome浏览器上进行了长期而广泛的验证,目前很多浏览器都已经支持了WebRTC。

WebRTC包括了音频引擎,视频引擎、传输引擎等,其中,音频引擎包括了两个编解码器:iSAC和iLBC,前者针对宽带和超宽带的音频编解码,后者针对窄带音频编解码,其实就是Opus音频编码。音频引擎还包括了回声消除、噪音抑制和自动增益模块。视频引擎包括了VP8和VP9的视频编解码器,目前谷歌正打算推出AV1。视频引擎还包括视频抖动缓冲和图像质量增强等模块。传输引擎的话,WebRTC使用SRTP(Secured Realtime Transport Protocol)进行音视频实时的安全传输。其中,密钥的生成依赖于DTLS协议的协商过程。

image.png

同样,浏览器WebRTC方案也有自己的不足:

1)没有自定义模块设置接口,在浏览器端不能实现较好的美颜和贴图效果。

2)WebRTC没有统一的信令标准,一方面给了技术方案的灵活性,另一方面也造成多系统互通时的转换成本。

3)音频编码格式和视频编码格式必须依靠WebRTC,不能自行定制化。

4)很多流浏览器支持WebRTC不是很友好,存在差异性。

文章分类
后端