前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WebRTC:理论基础、行业地位、网络架构

WebRTC:理论基础、行业地位、网络架构

作者头像
Jean
发布2020-10-28 17:20:17
7470
发布2020-10-28 17:20:17
举报
文章被收录于专栏:Web行业观察Web行业观察

目录:

  1. 媲美zoom的视频会议app
  2. WebRTC的行业地位
  3. RTC架构
  4. 动态分辨率调整

媲美zoom的视频会议app

上一期《WebRTC安全问题:私有IP与mDNS》中介绍了私有IP地址泄露的问题,关于私有IP泄露问题可以搜索关键词WebRTC+IP+leakage,或者查看Mozilla的bug报告:https://bugzilla.mozilla.org/show_bug.cgi?id=959893。

由于WebRTC的安全考虑,有时候WebRTC并没有权限获取本机的网卡IP地址,取而代之的是一个mDNS域名,但是由于mDNS尚未普及,设备不一定支持。所以不依赖WebRTC的“host candidate”,需要主动维护所有app设备的IP地址,通过心跳连接让中心的web端主动汇聚所有app的IP地址,并交换。一句话概括:手机的IP让web端来找,别自己找。

本文是WebRTC系列教程第四篇,仍然围绕理论基础,扯点有的没的。事实上,WebRTC的性能丝毫不弱于风靡全世界,行业领先的zoom,一般想要实现这样一个能提供高清画质的app,需要部署以下几个子系统:

  • WebRTC音视频编解码技术
  • 信令服务,用于网络层打洞(园区内网可能不需要)
  • 房间控制/认证(WebSocket,同上)
  • RTC架构:全互联mesh/中心化SFU

WebRTC的行业地位

如果按照时间性能和空间性能(数据量)这2个维度对所有网络通讯应用进行分类,大致可以分为3类:常规通讯、即时(消息)通讯、即时音视频通讯,共三种不同性能要求的通讯场景。

类型

时间要求

数据量

场景

1

通讯

HTTP网页、文件传输、电子邮件

2

即时通讯

聊天室、电话、网络游戏

3

即时音视频通讯

视频通讯、远程桌面、3D像素流

这3类app对性能的要求递增,很显然WebRTC是为了解决第3类应用场景。此类通讯的难度最大,单位时间内传递的数据量巨大,同时要求低延迟。遍历整个互联网,找不到比即时音视频通讯更难的需求,WebRTC技术本身就横跨多个基础学科,包括图论、信息论、控制论等,其行业地位可想而知。


RTC架构

如果只有2个人,自然p2p通讯是最佳方案;如果有3到5人的通讯,采用两两相连的全互联结构(full mesh)也是可以接受;如果人数增长至5以上,至少要考虑2点性能优化方案:

  • 复用媒体流:可以利用中心节点(如SFU)将重复的媒体流汇聚至上行链路(uplink)。
  • 有损压缩:用户不一定需要每个peer都传入100%分辨率的媒体流,比如视频会议中的缩略头像。

其实,如果打算开发一个不到10人的视频会议,mesh结构没得问题,mesh(网格)架构是最简单的全互联架构。全互联是图论的一个术语,代表所有节点两两相连,逻辑网络如下图:

注意,这张图只是逻辑上的网线,并非物理网线,根据组合数公式,全互联网络有C(n, 2)=n(n-1)/2个连接。这是一个二次多项式的复杂度,当n大于10以后是很恐怖的,真实物理链路利用中心的交换机将链路数量降至线性增长,不然太恐怖了。


动态分辨率调整

有时候,我们并不需要看到每个人的高清画质。

WebRTC接收的媒体流对象可以设置各种限制(constraints),包括空间上的分辨率和时间上的帧率(fps),这些限制可以节省流量。现代手机摄像头的分辨率大多是1080p(30fps),但是每个用户只接受2种分辨率,一种是类似监控中心的缩略版,一种是聚焦到某个用户时的完整图像。所以需要通在app中按需限流,除此之外,WebRTC也会根据网络环境对分辨率和帧率进行微调。

<完>

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebHub 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
即时通信 IM
即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、关系链、消息漫游、群组管理、资料管理、直播弹幕和内容审核等能力。适用于直播互动、电商带货、客服咨询、社交沟通、在线课程、企业办公、互动游戏、医疗健康等场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档