打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
WebRTC 是如何进行通信的,WebRCT 的三种网络结构

01WebRTC基础结构介绍

自从Google于2011年发布WebRTC以来,WebRTC一直是一个能够将互联网浏览器转换为强大的多媒体引擎的颠覆性技术。 WebRTC汇集了先进的实时通信技术,包括:先进的音视频编解码器(Opus和VP8/9),强制加密协议(SRTP和DTLS)和网络地址转换器(ICE&STUN)。

根据最初的定义,WebRTC被指定为P2P(peer-to-peer)技术。自成立以来,WebRTC已经大大降低了Web开发人员通过简单的Java API构建实时通信应用程序的难度。但要清楚,WebRTC是一种技术,而不是一个完整的应用程序或服务。

虽然WebRTC最初被设想为纯粹的P2P技术,但许多日常业务应用程序需要集中式媒体功能,通过P2S(peer-to-server)架构提高可靠性、效率或扩展性。对于P2P和P2S架构之间的问题对于构建WebRTC应用程序很重要。

02P2P到P2S

WebRTC旨在通过其浏览器(也称为P2P)在客户端之间直接发送媒体流。在P2P架构中,客户端建立通信之前,首先需要建立到应用服务器(有时也成为信令服务器)的信令连接。而 WebRTC规范中没有规定信令方法或协议,它允许采用现有方法(SIP,WebSockets,XMPP等)或实现专有信令过程。应用服务器保存业务逻辑,并作为会话描述协议(SDP)交换的中介。一旦SDP交换完成,两个客户端之间的直接媒体通信即可开始。

虽然WebRTC主要是浏览器到浏览器,但是随着服务器将媒体锚定在网络中以充当媒体P2S(如下图)。在P2S架构中,客户端再次建立到应用服务器的信令连接。在该体系结构中,应用服务器继续管理业务逻辑,而且还利用到服务器的媒体控制连接来进行客户端和媒体服务器之间的SDP交换。一旦SDP交换完成,客户端和服务器之间的媒体通信即可开始。

使用服务器端处理可以引入高级功能,例如用于合规性的集中审查,音频/视频回放,用于视频流的媒体分析,从而实现人脸监测、人脸识别等。根据架构,服务器端处理可以优化带宽并最大限度地减少客户端计算,从而能够使移动客户延长电池使用时间,并为其提供灵活的用户界面。

对于支持多个参与者(会议,远程学习,联络中心)的更复杂的应用程序,主要有三个WebRTC的网络结构:

P2P Mesh

MCU(Multi-point Control Unit)

SFU(Selective Forwarding Unit)

03三种WebRCT网络结构

3.1 Mesh

音视频数据流只在终端用户之间相互传输,不经过任何服务器节点,而且每个人都要与其它所有人建立P2P连接。

3.2 MCU

MCU是传统视频会议系统中的核心控制单元,在WebRTC的系统实现中, 适合于多人音视频通话场景,MCU可以对接收到的多路流进行转码和混合,并向每个终端输出单路流。

3.3 SFU

SFU从发布客户端复制音视频流的信息,然后分发到多个订阅客户端。典型的应用场景是1对多的直播服务。

3.4 三种的差异

Mesh的特点

每一个P2P连接有独立的传输策略控制,通讯质量有一定的保障。但是,这种架构对于客户端系统是一种浪费,一方面需要分配更多的端口,消耗更多的系统资源;另一方面,由于要向其它三个客户端发送本地音视频数据,增加了上行网络带宽的消耗,在同等带宽条件下,支持的多人通话路数就相对有限,视频质量(码率)也比较低。

MCU的特点

MCU将接收到的多路流进行转码和混合,并向每个终端输出单路流的做法,节省了终端用户的下行带宽,并且还能够对不同网络条件的用户,订制不同码率的输出视频流,让多人场景有更好的用户体验。典型的应用场景是多人音视频通话。

SFU的特点

SFU是解决服务器性能问题的有吸引力的方法,因为它不涉及视频解码和编码的计算费用,它以最低的开销来转发各路媒体流,典型的应用场景是1对多的直播服务。

04野狗的视频会议

野狗视频会议是一套基于WebRTC标准的多人实时音视频通信方案,可在全球范围内建立稳定、高清、流畅的多人音视频通信。

野狗视频会议支持多种浏览器,支持iOS、Android系统Native开发,也支持Java语言,开发者可利用其跨平台的特性,结合Electron、Cordova等,实现移动应用和桌面的适配。野狗视频会议提供两种混流模式:SFU和MCU,开发者可灵活选用。SFU是一种独立媒体流订阅机制,主要应用于需要灵活控制每一路音视频的场景;MCU则是一种混流下发机制,主要应用于传统视频会议场景,也可应用于会议直播、混流录制的实现。

在实际应用场景当中,多人视频常常需要与场景化功能配合使用。例如多人会议中的屏幕共享、文档演示,在线教育中互动白板、聊天问答,金融行业视频开户中人脸识别、风险揭示,社交娱乐中的美颜滤镜、脸萌贴纸等。这就要求多人视频会议SDK支持功能拓展,具备与其他商用软件足够的互操作性。野狗专门为此缔结了一批优质的合作伙伴,与他们提供的商用软件产品集成测试,确保完美兼容,以快速响应市场及客户需求。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android WebRTC 音视频开发总结(三)
基于WebRTC的多人视频会议
WebRTC中NAT穿透浅析
使用WebRTC搭建前端视频聊天室——入门篇
从0到1打造一个 WebRTC 应用
架构设计:基于Webrtc、Kurento的一种低延迟架构实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服