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端有更多尝试。