
5 月 19 日到 20 日,以「为开发者赋能,为行业加速」为主题的 WebRTC 技术盛会 WebRTCon 在上海盛大开幕。此次大会上,网易云信 CTO 赵加雨以联席主席身份出席了活动,网易云信多媒体资深技术架构师吴桐则作为大会讲师,进行了题为「精析网易 NRTC 的 WebRTC 网关服务器技术架构」的演讲。
5 月 19 日到 20 日,以「为开发者赋能,为行业加速」为主题的 WebRTC 技术盛会 WebRTCon 在上海盛大开幕。此次大会上,网易云信 CTO 赵加雨以联席主席身份出席了活动,网易云信多媒体资深技术架构师吴桐则作为大会讲师,进行了题为「精析网易 NRTC 的 WebRTC 网关服务器技术架构」的演讲。

WebRTCon 联席主席&网易云信 CTO 赵加雨
在演讲中吴桐和大家分享了网易云信基于 WebRTC 技术的开发难点、解决方案和应用案例,充分体现网易自研的全功能工业级音视频框架 NRTC(Netease Real-Time Communication),对 WebRTC 的技术升级和优化,以及对音视频使用场景的全面思考。

网易云信多媒体资深技术架构师吴桐
强化浏览器兼容性 实现多人音视频通话
目前,如在线教育、网络直播等,以 Web 端为入口的多人音视频通话场景已经渗透到人们的生活。而 WebRTC 技术最主要的优势就在于它可以帮助用户在没有插件和客户端的情况下,轻松实现网页浏览器之间的超低延时的语音通话和视频通话。
然而作为一项开源技术,各家浏览器在实现 WebRTC 的同时,技术层面也存在较大的差异,这就导致了不同浏览器端的 API、SDP 等不兼容的情况。面对这一技术难点,网易云信通过 NRTC 做了大量的调优工作。NRTC 基于 JavaScript 脚本,把 WebRTC 原生的 API 封装成更通用、更易用的软件开发包提供给用户,从而实现不同浏览器之间的适配。
此外,点对点单聊模式的 WebRTC 在多人音视频会话以及超大型群聊的场景中没有进一步的优化操作。为了解决这一问题并提供更高效的媒体数据传输能力,网易云信在多人会议场景中选择了 SFU 拓扑方案,即转发模型方案。同时,为了减小用户侧流量的压力,网易云信在 SFU 拓扑方案的技术上配合订阅系统一起使用。如此一来,这种组合方案不仅降低了用户端的复杂度,还保证了服务器端的高性能。

网易云信全功能工业级音视频技术框架——NRTC
接入 NRTC 网关服务器 实践丰富音视频功能
近两年,直播竞答、游戏直播、短视频、在线抓娃娃等新的实时音视频应用快速发展和更迭,随着用户对于功能和场景的多方面需求,网易云信通过在 NRTC 架构中增加 WebRTC 的网关服务器,从而赋予 WebRTC 更多音视频应用能力。
吴桐将这些能力总结为六点:第一,基于 UDP 的网易云信音视频通话功能具有流畅、低时延的特点,一般可用于在线教学、多人视频会议等音视频交友场景;第二,网易云信能够提供基于 TCP 的高品质直播能力,在秀场直播、游戏直播、大班教学等场景中优势明显;第三,网易云信也可以将音视频通话和直播能力相结合,提供互动直播功能,通过上麦下麦控制用户在连麦和观众模式间切换;第四,可提供点播与转码功能,通过融合 CDN 实现海量分发;第五,完整提供短视频功能,短视频 SDK 也一并俱全;第六,更丰富的场景工具,例如提供了互动白板, 文档共享等功能。
通过网易云信的网关服务器,WebRTC 具备了 NRTC 全面、成熟且稳定的功能。而 NRTC 本身也支撑了网易内外部各个客户的海量应用,譬如网易云音乐、网易新闻、有道精品课网易云课堂等。
优化服务端 QoS 追求高质量音视频效果
对于所有音视频应用来说,QoS(Quality of Service,服务质量) 策略是非常重要的一部分。
对于 WebRTC Web 客户端来说,QoS 策略都是内置在浏览器内部的,用户无法直接修改相关算法,只能通过 SDP 配置来选择需要开启的 QoS 策略。WebRTC 网关服务器端,针对不同浏览器进行 QoS 方案的选择和定制,在服务器端采用智能的 NACK 和 PLI 方案来实现丢包的快速重传,移植 WebRTC Native 代码里面 GCC 拥塞控制部分到服务端,并进行相关 GCC 算法的深度优化,让它更适用于用户的真实网络情况。
而 NRTC 的 QoS 的策略是跟场景模式相关的。网易云信会根据不同场景对流畅度、清晰度、网络环境以及智能化的要求调整对应的 QoS 策略。NRTC 具备智能的 FEC(Forward Error Correction,向前纠错) 策略,由于 WebRTC 内置的 ULP-FEC 方案存在缺陷,NRTC 在采用了智能 FEC 之后,效果相比标准 WebRTC 会有质的飞跃。此外,NRTC 还将 FEC 与 NACK 做深度结合,做到了重传和恢复的最佳效率和带宽的最佳利用。在 NRTC 的服务端,网易云信的工程师还会更多地考虑到用户上、下行网络不一致的问题。吴桐分享说:「网易云信传输层采用私有协议的方式,我们在回调网络情况的时候,NRTC 会做更加智能以及更加贴近真实网络的反馈。针对不同用户下行网络,NRTC 可以选择不同的策略,针对丢包、低带宽等弱网进行适配。」
2017 年,随着微软 Edge 浏览器和苹果 Safari 浏览器对 WebRTC 的支持以及 WebRTC1.0 标准的落地,WebRTC 技术将在 2018 年迎来更大的发展空间。吴桐对于 WebRTC 的技术发展进行了展望和预测:首先,去年 WebRTC 1.0 标准的落地会让这项技术的标准化做的越来越好,浏览器的兼容性问题也将会得到改善;第二,类似 AV1 等新的视频编码器会进入到 WebRTC 领域,而针对 VP9 的优化还会继续,并让 WebRTC 技术得到更好的呈现;第三,2018 年标准 WebRTC 的 QoS 方案将得到更进一步优化;第四,WebRTC 还不能对移动端浏览器进行很好的支持,这依然是需要改进的方面;最后,视频识别、AI 和 AR 等技术将会和 WebRTC 进行结合,在实时通讯领域,美颜等一些美化特效将在 Web 端有更多尝试。



