华为云计算 云知识 RTC与传统直播有什么区别

RTC与传统直播有什么区别

【音视频最新活动】 【免费资源包】

RTC(Real-time Communications),实时音视频,是一个正在兴起的风口行业,经过短短几年的时间,已经有很多玩家进入了这个行业,最典型的应用就是直播连麦和实时音视频通信。但是,很多开发者对一些概念还是有混淆的,比如RTC与WebRTC,RTC与直播。

 

RTC和直播有什么区别?

RTC的一个具体应用是直播场景中的直播连麦,也就是低延时直播。普通直播,一般采用 RTMP协议,使用CDN进行内容分发,会有几秒甚至十几秒的延时,主播和观众的互动只能通过文字短消息或送礼来进行。而直播连麦,使用UDP协议,内容实时传输,主播和观众可以进行音视频连麦互动,实时沟通,延时一般低至几百毫秒。

基于 RTMP 技术的连麦

当有连麦者时,则主播端和连麦端,都分别推一路 RTMP 流到 CDN,CDN 再将这两路 RTMP 流发送给观众端,观众端将两路 RTMP 流合成为一个画面。

RTMP 是基于 TCP 的标准协议,与 CDN 架构兼容,对客户来说在现有单向直播架构上,接入成本比较低,但是缺点也很明显:

主播与连麦者交互时,声音会产生干扰,形成回音;

播与连麦者进行交互,在 CDN 中传输延时较大;

观众端要接收两条视频流,带宽、流量消耗过大,并且两路视频流解码播放,耗费CPU等资源也非常多。

 

二、RTCWebRTC有什么区别?

实时通信(RTC)最容易和WebRTC混淆,实际上,二者不能划等号。

RTC从功能流程上来说,包含采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节,上图展现了一次RTC通信的简要流程。每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有VP8、VP9、H.264、H.265等等。

WebRTC是RTC的一部分。WebRTC,是Google的一个专门针对网页实时通信的标准及开源项目。只提供了基础的前端功能实现,包括编码解码和抖动缓冲等,开发者若要基于WebRTC开发商用项目,那么需要自行做服务端实现和部署,信令前后端选型实现部署,以及手机适配等一系列具体工作;在此之外还要在可用性和高质量方面,进行大量的改进和打磨,对自身开发能力的门槛要求非常高。一个专业的RTC技术服务系统,需要除了涵盖上述的通信环节外,实际上还需要有解决互联网不稳定性的专用通信网络,以及针对互联网信道的高容忍度的音视频信号处理算法。当然常规云服务的高可用、服务质量的保障和监控维护工具等都只能算是一个专业服务商的基本模块。所以,WebRTC仅是RTC技术栈中的几个小细分的技术组合,并不是一个全栈解决方案。

基于 WebRTC 方式的连麦↑↑↑

WebRTC 的好处在于用户体验好,不需要安装东西,分享一个链接就可以看。

但这套方案需要主播端上传两路视频:一路 P2P 与连麦者进行交互,一路使用 RTMP 推到 CDN。还要下载一路视频:连麦者P2P发送过来的交互数据。对主播端带宽需求较高。

另外,主播端需要进行多路视频的编码、解码,又对主播端设备配置要求较高。而由于主播端和连麦者经过 CDN 合并成一路,无法实现主播端和连麦者视频大小窗口切换。


版权声明:本文章文字内容来自第三方投稿,版权归原始作者所有。本网站不拥有其版权,也不承担文字内容、信息或资料带来的版权归属问题或争议。如有侵权,请联系contentedit@huawei.com,本网站有权在核实确属侵权后,予以删除文章。

上一篇:数据库设计中的物理设计 下一篇:如何为网站安装SSL证书