微信号:frontshow

介绍:InfoQ大前端技术社群:囊括前端、移动、Node全栈一线技术,紧跟业界发展步伐。

专访赵加雨:WebRTC在网易云信的落地

2018-05-31 14:28 徐川

去年的这个时候,在市面上公开表示使用 WebRTC 的公司还没几家,但 2018 年以来,宣布采用或支持 WebRTC 的公司已经越来越多。实时音视频提供商网易云信也在自研的 NRTC 中集成了 WebRTC。在他们眼里,2017 年是 WebRTC 的转折之年,而 2018 年将是 WebRTC 的爆发之年。InfoQ 记者对网易云信 CTO 赵加雨进行了采访,了解了他们对 WebRTC 的看法。

前段时间,全球领先的技术研究和咨询公司 Technavio 发布了题为“全球网络实时通讯(WebRTC)市场,2017-2021”的报告。报告显示,2017-2021 年期间,全球网络实时通信(WebRTC)市场将以 34.37%的年均复合增长率增长,增长十分迅速。增长主要来自北美、欧洲及亚太地区。

这个市场增速如此快,其主要驱动因素之一就是对支持 WebRTC 的设备的需求不断增长。全球 WebRTC 市场正在快速增长,主要因为对实时通信的需求越来越高以及 WebRTC 设备数量的增加。通过互联网视频和语音通话功能的高需求,而不需要下载插件,这推动了市场的增长。

一些网络浏览器(如 Chrome、Opera 和 Firefox)在已在手机,电脑,智能电视和平板电脑等设备中支持 WebRTC。2014 年,超过 10 亿台设备支持 WebRTC。到 2016 年底,数量增加到 40 亿。并且,截至 2016 年底,已有超过 15 亿活跃的 WebRTC 用户。WebRTC 支持设备数量的上升是 WebRTC 市场日益增长的明显指标。

2017 年 11 月,WebRTC 1.0 标准草案发布,同年至少有上千个 WebRTC 项目启动,国内国外很多大公司开始投入人力做这个方向。

网易云信对 WebRTC 的支持

网易云信是网易在云计算里面很重要的一块业务。赵加雨说,云计算发展到现在,基础的云服务已经不再是客户的刚需,或者说不再是客户的一个痛点了,云必须深入到场景中去提供更加定制化的服务。网易云信提供的是场景化的、PaaS 层的云服务,包括通信能力和视频能力。其中最为代表性的技术就是他们自研的音视频框架 NRTC。

NRTC 是在网易内部杭州研究院孵化的,本身是为整个网易集团提供音视频相关的基础技术能力,服务的产品包括网易新闻、网易云音乐以及网易游戏等。2016 年 9 月,网易将其开放并作为标准能力向外提供服务。2017 年,NRTC 开始支持 WebRTC。

据赵加雨介绍,实时音视频研发涉及复杂、多样的技术栈,对资深的人才、网络服务资源的投入要求很高。而 WebRTC 为 Web 端的实时音视频研发提供了功能强大的技术支持,这也是他们选择支持 WebRTC 的原因。

  • 首先,WebRTC 技术内置于浏览器中,用户不需要任何插件或者软件就能直接通过浏览器来实现实时通信。对于开发者来说,在 Google 将 WebRTC 开源之前,开发浏览器之间实现通信技术是一个很困难的任务。现在,开发者使用简单的 HTML 标签和 JavaScript API 就能够实现 Web 端的音视频通信功能。

  • 主流浏览器对 WebRTC 技术的支持,以及 WebRTC1.0 标准的技术落地让这项技术更加的成熟,WebRTC 也集成了比较先进的音视频引擎和 codec。由于是开源的技术,开发成本也相对较低。

  • WebRTC 具有强大的打洞能力。WebRTC 技术包含了使用 STUN、ICE、TURN、RTP-over-TCP 的关键 NAT 和防火墙穿透技术,并支持代理。

但是,作为一项开源技术以及实验室级别的产品,WebRTC 开发者依然需要基于实际应用场景和具体的业务需求,做技术难度较高的二次开发,以寻求更完善、灵活的实时通信功能的实现。所以,市场仍然需要基于 WebRTC 的功能更齐全、开发更便捷的工业级的实时音视频解决方案。

接入 WebRTC,对 NRTC 提供的帮助包括:

  • 应用层面:WebRTC 补充了 NRTC 在 Web 端的接入能力,NRTC 可以通过 WebRTC 网关实现 Web 端实时音视频的功能。同时,WebRTC 还扩大了 NRTC 的使用场景,让 NRTC 在教育、医疗等领域得到了更加广泛的开发和应用。

  • 技术层面:WebRTC 是一个开源的音视频技术框架,使用了很多标准协议和方案,对于私有协议 NRTC 来说是一个互补。随着 WebRTC 的广泛应用,也促进了开发者对 NRTC 的关注和使用需求。

网易云信对 WebRTC 的改进

如果仅仅是基于现有的 WebRTC,自己写一些 JavaScript 来实现简单的音视频会话,那么难度没有那么高,但是要想实现一个工业级的应用,其实难度是非常高的,因为它基于浏览器,而 WebRTC 本身只提供了一个 Web 端的接入能力,是没有服务端的。目前很多基于 WebRTC 提供能力的厂商,研发都集中在 WebRTC 网关及服务端能力的建设。

另外 WebRTC 整个抗丢包都是基于 Peer to Peer 场景下的优化,它不一定适合企业的应用场景。

第三个就是它只是一个很基本的 Web 端的音视频的通话,它没有其他的服务,包括像录制和其他云端的服务。

NRTC 的 WebRTC 里面支持了 Web 的接入同时做了很多优化,包括抗丢包、音频的优化,这样比纯粹的基于 WebRTC 构建一个简单的应用能够实现的效果要好很多。另外,NRTC 通过提供云端的录制、云端的推流,来实现互动直播。

改造的技术细节,网易云信资深架构师吴桐在前不久线下分享过《精析网易 NRTC 的 WebRTC 网关服务器技术架构》,可以进一步了解。关注“前端之巅”公众号,回复WebRTC获取 PPT。

WebRTC 未来展望

最后在谈到 WebRTC 的未来的时候,赵加雨表示,我们要看到,在现在的这个时间点,WebRTC 仍然处于大规模应用的早期:

一方面,WebRTC 的 codec 等正在演进,如 AV1/VP9 等,它们也在近一年来取得了极大的进展,但尚未投入到实际应用当中。

另一方面,部分浏览器对 WebRTC 的实现还非常粗糙,包括移动端的浏览器,需要持续的完善。

最后,网络要支持 WebRTC 的 QUIC 协议需要进化,部分新型的实时网络架构如 SD-RTN 等需要时间来完善和普及。

因此 WebRTC 的未来是光明的,但当前仍然处于过渡阶段,这也是 NRTC 接入 WebRTC 的原因,通过弥补 WebRTC 的一些短板来提供服务,是当前阶段切实可行的做法。

 
前端之巅 更多文章 为什么前端开发这么不稳定? 你需要了解的23种JavaScript设计模式 我们与Kotlin的故事:从尝试到放弃 你是JavaScript大师吗?试试这些面试题就知道了 Android要被Google砍掉,可信么?
猜您喜欢 vue 开发波纹点击特效组件 ANOVA 模型拟合(一) 百度开源自动驾驶系统Apollo 【第216期】 天天写业务代码,如何成为技术大牛? 领域驱动设计(DDD)部分核心概念的个人理解