| 什么是 WebRTC
WebRTC 是一个可以使我们在浏览器或移动 App 中直接进行音频/视频交流的技术,它可以进行 P2P 文件共享,处理大量音频数据,实现在线视频会议等, WebRTC 使设备能够在平台和浏览器之间传输音频和视频。使用特定的 API ,开发人员可以允许他们的用户通过简单的浏览器连接设备,而无需任何额外的插件、扩展或软件安装。这种多功能性使得 WebRTC 成为各种物联网设备开发人员的热门选择。
| WebRTC 的应用前景
从 2G 时代的文字信息传输到 3G 时代的图片传输再到 4G 时代的直播热潮,每个网速时代的变革都将我们的梦想一步步实现;随着 5G 即将到来,更好的上网体验将会极大地推动音视频行业的发展和创新。
WebRTC 也将激活人与人、人与物、物与物之间的信息纽带,解决互联网音视频通信的技术门槛问题,成为应用场景创新的强大技术保障,为社交、监控、视频会议、物联网、在线教育、远程医疗等场景注入新的活力。随之,互联网尤其是移动互联网上基于 WebRTC 的各种应用创新也将层出不穷。
| 如何做好 WebRTC
一款音视频产品通常会包含信令服务、媒体服务、网络服务等几部分;而一款运行稳定、性能出色的 WebRTC 产品,则需要满足以下几个要求。
1、稳定的信令系统
我们需要通过信令来控制 WebRTC ,并且在此基础上构建各种业务逻辑。信令即协调通讯的过程,应用要发起一个音视频通话,通常需要在客户端之间交换如下信息:
1) 会话的信息
2) 设备的能力,编解码、分辨率、码率等
3) 秘钥信息,用于创建安全连接
4) 网络信息,如外部能访问的主机 IP 和端口
5) 传递信息,通过信令来实现业务场景中的通话控制
……
如上图:如果 A 和 B 要发起音视频通话,需要将双方的 SDP 信息做交换,才能建立连接。由此可见信令系统若想保证足够的稳定,连通率、到达率、高并发、高可用等技术指标需全部达标,才能确保 WebRTC 通话的建立和通话过程中的逻辑控制。
2、高可用的媒体服务器
WebRTC 常见的几种模式如下:
1) Mesh 网状结构
通过搭建 Turn/Stun 服务直接发起端到端的 P2P 通话。
优点:不需要搭建 MediaServer 。
缺点:对于多人通话需要每个客户端都跟其他两个端分别建立 P2P 连接,每新增一个客户端,所有的客户端都需要新增一路数据上行,导致客户端上行带宽占用太大。因此,通话人数越多,效果越差,也无法在服务端对视频进行额外处理,如:录制存储回放、实时转码、智能分析、多路合流、转推直播等。
2)MCU
服务端负责把参与者的视频做混流,多人参会每个人只有一个上行视频,同时接收一个下行视频流。
优点:客户端压力较小,带宽消耗小,服务端可以控制下发的视频数据,从而可以发起更多参与者的视频会议。
缺点:服务器资源消耗较大,对服务器的性能要求高,服务器成本高昂。
3)SFU
SFU 的全称是:Selective Forwarding Unit,是一种通过服务器来路由和转发 WebRTC 客户端音视频数据流的方法。 SFU 服务器最核心的特点是把自己“伪装”成一个 WebRTC 的客户端,将一个 Client 端的数据转发到其他多个 Client 端。
优点:对服务器性能要求不高。
缺点:对服务器和客户端带宽要求高。
| 融云音视频的实践
音视频领域飞速发展的今天,融云也通过在音视频领域多年的摸爬滚打,充分借助融云 IM 通道的稳定性和数年来逐步优化的覆盖全球的专有网络优势,打造出了自己的音视频解决方案。
1、信令系统
1)可靠性
融云对分布式 RTC 网络的活用,让信令服务与媒体服务不需要状态同步,媒体中心间不需要状态同步;音视频复用融云即时通讯信令通道,信令服务与媒体服务解耦、无依赖;弱网环境下,消息发送方只要将消息发送到服务器端,服务器端能确保消息不丢、不乱、不重。
2)安全性
基于融云自有知识产权的连接加密技术,可以防止黑客以中间人方式进行数据窃听,数据在传输过程中不可破解, NAV 导航服务与 CMP 连接管理服务的安全算法一致,每个客户端从导航服务获取到加密校验值( SM2 标准),均按照安全算法与所连接的 CMP 服务进行安全协商,针对校验值 CMP 会进行合法性验证( SM3标准),协商的校验值不能在其他 CMP 连接管理服务上使用。消息在传输之前,通过 SM4 对数据进行加密,并且通过加密连接传输将信息发送到发送方所在 CMP 连接管理服务,之后,由发送方所在 CMP 连接管理服务进行解密并将解密后的消息发给消息服务,依据协议内容,由消息服务负责将信息传递给接收方所在 CMP 连接管理服务,而后 CMP 连接管理服务依据接收方的密钥进行信息加密,最后通过加密连接下发信息。
2、MediaServer
1) 全球化部署,低延迟
全球部署多个 MediaServer 数据中心,用户就近接入;跨国网络之间通过专线连接,保证媒体数据传输延迟低。
2) 动态扩展
信令和 MediaServer 完全解耦,随时随地部署,通过监测服务器负载情况可以随着业务量级增长动态横向扩容,保证业务的高可用性。
3) 高质量音视频流
通过高效的处理,提高服务器吞吐量,减少丢包率,通过丢包重传和网络探测机制,提高在弱网环境下的音视频质量和用户体验。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。