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

去年的这个时候,在市面上公开表示使用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。

\\

8c89c218269f6b854fd62ce6f7379c6b.png

\\

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

\\
  • 首先,WebRTC技术内置于浏览器中,用户不需要任何插件或者软件就能直接通过浏览器来实现实时通信。对于开发者来说,在Google将WebRTC开源之前,开发浏览器之间实现通信技术是一个很困难的任务。现在,开发者使用简单的HTML标签和JavaScript API就能够实现Web端的音视频通信功能。\\t
  • 主流浏览器对WebRTC技术的支持,以及WebRTC1.0标准的技术落地让这项技术更加的成熟,WebRTC也集成了比较先进的音视频引擎和codec。由于是开源的技术,开发成本也相对较低。\\t
  • WebRTC具有强大的打洞能力。WebRTC技术包含了使用STUN、ICE、TURN、RTP-over-TCP的关键NAT和防火墙穿透技术,并支持代理。 但是,作为一项开源技术以及实验室级别的产品,WebRTC开发者依然需要基于实际应用场景和具体的业务需求,做技术难度较高的二次开发,以寻求更完善、灵活的实时通信功能的实现。所以,市场仍然需要基于WebRTC的功能更齐全、开发更便捷的工业级的实时音视频解决方案。\

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

\\
  • 应用层面:WebRTC补充了NRTC在Web端的接入能力,NRTC可以通过WebRTC网关实现Web端实时音视频的功能。同时,WebRTC 还扩大了NRTC的使用场景,让NRTC在教育、医疗等领域得到了更加广泛的开发和应用。\\t
  • 技术层面: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等,它们也在近一年来取得了极大的进展,但尚未投入到实际应用当中。\\t
  • 另一方面,部分浏览器对WebRTC的实现还非常粗糙,包括移动端的浏览器,需要持续的完善。\\t
  • 最后,网络要支持WebRTC的QUIC协议需要进化,部分新型的实时网络架构如SD-RTN等需要时间来完善和普及。\

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebRTC 简介 WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。 WebRTC提供了实时音视频的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。 虽然WebRTC的目标是实现跨平台的Web端实时音视频通讯,但因为核心层代码的Native、高品质和内聚性,开发者很容易进行除Web平台外的移殖和应用。很长一段时间内WebRTC是业界能免费得到的唯一高品质实时音视频通讯技术。 为什么需要 WebRTC 开发者教程? 虽然WebRTC技术已经较为成熟,其集成了最佳的音/视频引擎,十分先进的codec,且包含了使用STUN、ICE、TURN、RTP-over-TCP的关键NAT和防火墙穿透等众多门槛并不低的技术。抛开音视频技术本身的复杂性外,要想找到合适的资料、完整的代码和库、配合合适的IDE和辅助工具能正常地实现编译和安装都非常的不容易,而这还只是个开始。没有靠谱的教程,你该怎么开始?那么地坑等在那,难道你打算一个一个趟过去? 本《WebRTC 零基础开发者教程》主要讲了什么 本文中提供下载的《WebRTC 零基础开发者教程》将以一个初学者的角度,从0开始逐步引导你掌握WebRTC开发的方方面面(当然,教程中更多的是操作性的内容,具体到技术原理和实现,显然不是本教程的讨论范畴)。 《WebRTC 零基础开发者教程》目录 1 工具 1.1 depot_tools 1.1.1 目标 1.1.2 Chromium 1.1.3 使用说明在这儿 1.1.4 下载 1.1.5 使用 1.1.6 具体使用例子 1.2 Gyp工具 1.3 Python工具 1.4 本地集成开发环境(IDE ) 1.4.1 Visual studio 1.4.2 Kdevelop 1.4.3 Eclipse 2 Webrtc 2.1 下载、编译 2.1.1 Windows下 2.1.2 ubuntu下编译 2.1.3 编译Android(只能在 linux 下) 3 webrtc开发 3.1 开发P2P视频软件需要处理的问题 3.1.1 用户列的获取、交换、信令的交换 3.1.2 P2P通信 3.1.3 多媒体处理 3.2 webrtc架构 3.2.1 WebRTC架构组件介绍 3.2.2 WebRTC核心模块API介绍 3.2.3 webRTC核心API详解 4 Libjingle详细介绍 4.1 重要组件 4.1.1 信号 4.1.2 线程和消息 4.1.3 名称转换 4.1.4 SSL支持 4.1.5 连接 4.1.6 传输,通道,连接 4.1.7 候选项 4.1.8 数据包 4.2 如何工作 4.2.1 Application模块 4.2.2 XMPP Messaging Component 模块 4.2.3 Session Logic and management commponent 模块 4.2.4 Peer to peer Component 模块 4.2.5 其他 4.3 建立libjingle应用程序 5 代码分析 5.1 音频通道建立过程 5.2 音频接收播放过程 5.3 视频接收播放过程 6 协议 6.1 XMPP协议 6.1.1 原理介绍 6.1.2 XMPP 协议网络架构 6.1.3 XMPP 协议的组成 6.1.4 Xmpp介绍 6.1.5 协议内容 6.2 Stun协议 6.2.1 P2P实现的原理 6.2.2 P2P的常用实现 6.2.3 Stun URI 6.2.4 内容 6.2.5 中文内容 6.2.6 开源服务器 6.2.7 公开的免费STUN服务器 6.3 Turn协议 6.3.1 概念 6.3.2 Turn uri 6.3.3 开源服务器工程 6.3.4 开源库 6.4 交互式连接建立(Interactive Connectivity Establishment) 6.4.1 IETF规格 6.4.2 开源工程 6.5 XEP-0166 Jingle 6.5.1 绪论 6.5.2 需求 6.6 Sctp协议 6.7 Rtp协议 7 附件 7.1 Gyp工具 7.2 Google test程序 7.3 Webrtc库介绍 7.4 webrtc代码相关基础知识 7.5 STUN和TURN技术浅析 7.6 基于ICE的VoIP穿越NAT改进方案 7.7 ubuntu安装使用stuntman 7.8 一个开源的ICE库——libnice介绍 7.9 4种利用TURN穿越对称型NAT方案的设计与实现 7.10 基于ICE方式SIP信令穿透Symmetric_NAT技术研究

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值