什么是 WebRTC
WebRTC 是一个可以使我们在浏览器或移动 App 中直接进行音频/视频交流的技术,它可以进行 P2P 文件共享,处理大量音频数据,实现在线视频会议等, WebRTC 使设备能够在平台和浏览器之间传输音频和视频。使用特定的 API ,开发人员可以允许他们的用户通过简单的浏览器连接设备,而无需任何额外的插件、扩展或软件安装。这种多功能性使得 WebRTC 成为各种物联网设备开发人员的热门选择。
WebRTC 的应用前景
从 2G 时代的文字信息传输到 3G 时代的图片传输再到 4G 时代的直播热潮,每个网速时代的变革都将我们的梦想一步步实现;随着 5G 即将到来,更好的上网体验将会极大地推动音视频行业的发展和创新。
WebRTC 也将激活人与人、人与物、物与物之间的信息纽带,解决互联网音视频通信的技术门槛问题,成为应用场景创新的强大技术保障,为社交、监控、视频会议、物联网、在线教育、远程医疗等场景注入新的活力。随之,互联网尤其是移动互联网上基于 WebRTC 的各种应用创新也将层出不穷。
如何做好 WebRTC
一款音视频产品通常会包含信令服务、媒体服务、网络服务等几部分;而一款运行稳定、性能出色的 WebRTC 产品,则需要满足以下几个要求。
1、稳定的信令系统
我们需要通过信令来控制 WebRTC ,并且在此基础上构建各种业务逻辑。信令即协调通讯的过程,应用要发起一个音视频通话,通常需要在客户端之间交换如下信息:
会话的信息
设备的能力,编解码、分辨率、码率等
秘钥信息,用于创建安全连接
网络信息,如外部能访问的主机 IP 和端口
传递信息,通过信令来实现业务场景中的通话控制
……
如上图:如果 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)高质量音视频流
通过高效的处理,提高服务器吞吐量,减少丢包率,通过丢包重传和网络探测机制,提高在弱网环境下的音视频质量和用户体验。