专访赵加雨: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的一些短板来提供服务,是当前阶段切实可行的做法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1、Linux命令随笔

1 Linux命令总结2 3 man 命令帮助;4 help 命令的帮助(bash的内置命令);5 ls list,查看目录列表;6 -ld:查看目录权限;7 -l:(long)长格式显示属性;8 -F:给不同的文件类型结尾加标识9 -p:给目录加斜线10 …

1137. 第 N 个泰波那契数

泰波那契序列 Tn 定义如下: T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 示例 1: 输入:n 4 输出:4 解释: T_3 0 1 1 2 T_4 1…

5827. 检查操作是否合法

给你一个下标从 0 开始的 8 x 8 网格 board ,其中 board[r][c] 表示游戏棋盘上的格子 (r, c) 。棋盘上空格用 ‘.’ 表示,白色格子用 ‘W’ 表示,黑色格子用 ‘B’ 表示。 游戏中每次操作步骤为:选择一个空格子,将它变…

5193. 删除字符使字符串变好

5193. 删除字符使字符串变好 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 。 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 。 请你返回删除后的字符串。题目数据保证答案总是 唯一的 。 示例 …

PHP--------微信网页开发实现微信扫码功能

今天说说微商城项目中用到的扫一扫这个功能,分享一下,希望对各位有所帮助。 前提:要有公众号,和通过微信认证,绑定域名,得到相应信息,appid,appsecret等。 微信开发文档:…

313. 超级丑数

超级丑数 是一个正整数,并满足其所有质因数都出现在质数数组 primes 中。 给你一个整数 n 和一个整数数组 primes ,返回第 n 个 超级丑数 。 题目数据保证第 n 个 超级丑数 在 32-bit 带符号整数范围内。 示例 1: 输入:n 12,…

[SQL] 请教一下 count里面有case when 一般情况下啥时候用

http://www.itpub.net/forum.php?modviewthread&tid1810967 问题: 比如 count(case when pday_id${deal_date} then 1 end) 我有点想不明白具体什么情况下count() 这个小括号里面还要用case when 大家做BI统计的时候一般什么情况用啊 还有个…

路由器架设虚拟服务器让外网访问到本地网站

确定电脑与路由器正确连接,并且已连至互联网。在地址栏中输入192.168.0.1回车,输入用户名密码,进入路由器主界面。 然后点击左侧菜单中的“虚拟服务器”,——“端口段映射”打开“端口段映射”界面。 由于网站用的是80端口&#x…

selenium模块

selenium模块 阅读目录 一 介绍二 安装三 基本使用四 选择器五 等待元素被加载六 元素交互操作七 其他八 项目练习一 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题selenium本质是通过驱动浏览器,完…

关于tomcat Post 数据参数的问题

2019独角兽企业重金招聘Python工程师标准>>> POST请求本身并未限制传入参数大小&#xff0c;是tomcat 容器设置了接收参数大小的限制。修改server.xml <Connector port"8080" protocol"HTTP/1.1" connectionTimeout"2000" red…

杜教筛--51nod1239 欧拉函数之和

求$\sum_{i1}^{n}\varphi (i)$&#xff0c;$n\leqslant 1e10$。 这里先把杜教筛的一般套路贴一下&#xff1a; 要求$S(n)\sum_{i1}^{n}f(i)$&#xff0c;而现在有一数论函数$g(i)$&#xff0c;$g(i)$的前缀和很无脑&#xff0c;且$f$和$g$的狄利克雷卷积的前缀和很无脑&#xf…

修改npm全局安装模式的路径

修改npm全局安装模式的路径 在正式写此文章之前&#xff0c;我得说一点血泪史。 刚学nodeJS不久&#xff0c;很纳闷为什么全局安装的模块在 node安装目录/node_modules‘ 中没找到&#xff01;后来仔细看了下安装成功后的信息&#xff0c;才发现原来是自动安装在C盘了&#xff…

在Mac上为自己手动编译安装一套PHP7的开发环境

首先你得去官网下载php7 beta1的版本 这里由于我是在mac上安装&#xff0c;所以就去下载linux相关的版本&#xff0c;地址也直接附上了php7 beta1windows版的官方也有发布详情猛戳&#xff1a;这里 解压安装包&#xff0c;进入源代码目录 tar -zxvf php-7.0.0beta1.tar.gz cd p…

卡特兰数 HDU2067 HDU4165 HDU1134

题目链接&#xff1a;https://vjudge.net/problem/HDU-2067 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11800 Accepted Submission(s): 5952 Problem Description小兔的叔叔从外面旅游回来给她…

Publish/Subscribe

Publish/Subscribe 我们将会投递一个消息给多个消费者&#xff0c;这种模式被称为“publish/subscribe” 通俗的讲&#xff0c;前面的是点对点队列模型&#xff0c;现在讲的是发布订阅模型。 Exchanges producer&#xff1a;一个发送消息的用户应用程序 queue&#xff1a;一个存…

[转]在ROS下使用zeroconf配置多机通信

原文地址&#xff1a;http://www.corvin.cn/635.html&#xff0c;转载主要方便随时查阅&#xff0c;如有版权要求&#xff0c;请及时联系。 0x00 为何需要配置ROS多机通信 众所周知ROS是分布式系统&#xff0c;因此可以将机器人需要处理的复杂、计算量大的任务分解在多台机器上…

NGINX原理 之 SLAB分配机制(转)

1 引言 众所周知&#xff0c;操作系统使用伙伴系统管理内存&#xff0c;不仅会造成大量的内存碎片&#xff0c;同时处理效率也较低下。SLAB是一种内存管理机制&#xff0c;其拥有较高的处理效率&#xff0c;同时也有效的避免内存碎片的产生&#xff0c;其核心思想是预分配。其按…

dynamic web module消失不见

2019独角兽企业重金招聘Python工程师标准>>> 方法1&#xff1a;在project Facets选项中勾选Dynamic Web Module即可 方法2&#xff1a; 我用eclipse对项目进行修改名称&#xff0c;修改成功后。项目就没有Deployment Descriptor&#xff08;如下图红色框中&#xff…

576. 出界的路径数

576. 出界的路径数 给你一个大小为 m x n 的网格和一个球。球的起始坐标为 [startRow, startColumn] 。你可以将球移到在四个方向上相邻的单元格内&#xff08;可以穿过网格边界到达网格之外&#xff09;。你 最多 可以移动 maxMove 次球。 给你五个整数 m、n、maxMove、star…

telnet命令发送邮件

下面的例子是用qq的smtp服务器。 set localecho 本地回显启用 telnet smtp.qq.com 25 220 smtp.qq.com Esmtp QQ Mail Server helo sis 250 smtp.qq.com//服务器返回250 smtp.qq.com STARTTLS 220 Ready to start TLS//服务器返回 220 准备开启TLS通讯 auth login 334 VXNlcm5h…