写点什么

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

2018 年 5 月 31 日

去年的这个时候,在市面上公开表示使用 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 的一些短板来提供服务,是当前阶段切实可行的做法。

2018 年 5 月 31 日 09:435615
用户头像

发布了 134 篇内容, 共 89.3 次阅读, 收获喜欢 375 次。

关注

评论

发布
暂无评论
发现更多内容

那些会阻碍程序员成长的细节[2]

码闻强

程序员 程序人生

数据产品经理实战-数据门户搭建(上)

第519区

数据中台 开发数据

奈学:传授“带权重的负载均衡实现算法”独家设计思路

奈学教育

分布式

你不知道的SSD那些事

焱融科技

分布式 存储 SSD nvme

【Java 25周年有奖征文获奖名单公布!!!】关于Java,你最想赞扬、吐槽、期待的变化是什么?

InfoQ写作平台官方

写作平台 Java25周年 活动专区

眼中有码,心中无码

小眼睛聊技术

学习 深度思考 程序员 最佳实践 算法

爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【2】-抓包分析

hadesxiong

Python 爬虫 保险 Scrapy

如何做好Code Review?

flyer0126

Code Review

Vue生态篇(一)

shirley

Java Vue

ARTS - Week Two

shepherd

js algorithm

patroni 通过服务启动报错

yafeishi

数据库 高可用 AntDB

开源分布式文件系统大检阅

焱融科技

sds 存储 开源项目 焱融科技 文件存储

Go语言分布式系统配置治理

田晓亮

微服务

重学 Java 设计模式:实战单例模式

小傅哥

设计模式 编程思维 重构 优化代码

像孩子一样认识新事物 —— 读《终身幼儿园》

YoungZY

学习 读书笔记 读书

关爱孩子的心理建设

Neco.W

人生 感悟 教育

美团可能会强势涉足 ToB

罗小布

创业 互联网巨头 深度思考 互联网

我常用的浏览器插件

彭宏豪95

chrome 效率工具 浏览器 插件

知识也会生宝宝?

史方远

个人成长 随笔杂谈

ARTS 第二周打卡

陈文昕

5G时代下应用的安全防御研究

Nick

5G 5G网络安全 5G安全

DDD 中的那些模式 — 使用 Specification 管理业务规则

Joshua

设计模式 领域驱动设计 DDD 架构模式

线程池续:你必须要知道的线程池submit()实现原理之FutureTask!

一枝花算不算浪漫

源码分析 并发编程

# LeetCode 215. Kth Largest Element in an Array

liu_liu

算法 LeetCode

# LeetCode 863. All Nodes Distance K in Binary Tree

liu_liu

算法 LeetCode

MySQL的各种日志

超超不会飞

MySQL

情绪的力量:如何使用情绪来达成目标

七镜花园-董一凡

情绪

我为什么开始技术写作?

flyer0126

技术创作

ARTS week 3

刘昱

Flutter开发环境配置

玉龙BB

flutter android vscode

每个人都是领导者的工程团队

hongfei

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