在刚刚落幕的 WWDC17 上,苹果为我们带来了一个不小的惊喜 —— 其浏览器内核WebKit 将正式支持 WebRTC,而未来基于 WebKit 内核的苹果浏览器,比如 macOS High Sierra、iOS 11 中的 Safari 浏览器和 Safari 技术预览版 32,都将使用到 WebRTC 技术。

此消息一出便引得无数 WebRTC 开发者为之兴奋,更表示其将改变当前的 P2P 视频通话技术格局。这是为什么呢?在此,我们需要先简单地了解一下 WebRTC,其全称为 Web Real-Time Communication(网络实时通信),是一项能够让浏览器支持实时语音会话或视频对话的技术。这一技术前身为 GIPS,本是由 Global IP Solutions 公司研发,2010 年,Google 以 6820 万美元的价格将该公司收购并将 GIPS 更名为 WebRTC,次年 5 月正式将其开源。

彼时,我们所能想到的只是因为 Google 的推动,这样一项能够在浏览器内部进行实时音频和视频通信的技术让 Web 中的实时通讯成为可能。但同时,也有诸多开发者在质疑 WebRTC 是否会昙花一现,毕竟一直以来,虽然 Chrome、Firefox、Opera 等市面上主流的浏览器均已加入 WebRTC 大本营,但苹果的 Safari 和微软的 IE 却都不支持。

如今,Safari 即将在最新版本中集成 WebRTC,其对于整个实时通信领域而言,究竟意味着什么?对于 WebRTC 开发者来说,又将有着怎样的改变?我们带着种种疑问,请教了网络实时通信领域的资深专家 —— 声网 Agora.io 创始人兼 CEO 赵斌,从 WebRTC 的发展历程谈起,详细剖析 WebKit 终于支持 WebRTC 将带来怎样的变化。

追本溯源:为解决在浏览器上进行视频通话而生的 WebRTC

在 2011 年以前,浏览器之间要想实现实时通信,需要私有技术,其中大部分都是通过插件和客户端来安装使用。对于许多用户而言,插件的下载、安装和更新是一个复杂、繁琐和容易出错的操作。而对于开发人员来说,插件的调试、测试、部署、错误修复和维护同样困难重重,且不提还涉及到一些受版权保护的技术,整合相当复杂。再者,很多时候,服务提供商很难说服用户去安装插件。

但这一两头吃力还不讨好的局面就这样被 Google 将 WebRTC 项目开源所打破。2011 年,WebRTC 基于 BSD 协议开源,同年,W3C 启动 WebRTC 计划,让 WebRTC 成为了 HTML5 标准的一部分(目前,该规范还在开发中)。

由此,浏览器厂商将 WebRTC 内建在浏览器中,使得 Web 应用研发人员能够通过 HTML 标签和 Java API 即可实现 Web 音视频通信功能。在 WebRTC 的官网上,Google 如此表述道:

互联网成功的关键因素之一,便是一些如 HTML、HTTP 和 TCP/IP 等的核心技术是开放和免费实现的。目前,在浏览器通信领域还没有免费、高质量、完整的解决方案,而 WebRTC 正是这样的技术。

该技术包含了使用 STUN、ICE、TURN、RTP-over-TCP 的关键 NAT 和防火墙穿透技术,并支持代理。通过浏览器,WebRTC 把通讯双方的信令状态直接映射到 PeerConnection 里面来抽象信令处理,这样,开发人员按不同的应用场景选择不同的会话协议,比如 SIP、XMPP/Jingle 等。截至目前,该技术的使用已经超过了 8 年,集成了最佳的音频、视频引擎,并被部署到数以百万的终端中,同时这些技术 Google 不收取任何费用。

从最初的为了解决浏览器上视频通话而诞生,WebRTC 已经发展到可以实现在浏览器之间进行任意数据的通信。其中,Chrome、Firefox、Opera 对于 WebRTC 的支持已较为成熟,而微软于 2014 年提出了 ORTC(对象 RTC,也有人称之为 WebRTC 1.1),希望在对 Google 的 WebRTC 提案稍作修改的基础上,也提供支持。目前,最新版本的 Microsoft Edge 已经支持 ORTC。

而对于苹果官方终于宣布“WebRTC 将在 Safari 11 上支持”,赵斌如此评价道:“目前,WebRTC 已经有了 1.0 版本,暂时还是草案。但是我们可以看到的是,WebRTC 在网络抗丟包处理、视频引擎(比如 H.264 Codec 支持成熟度)等方面,还是需要加强的。1.0 之后的 1.1 版本,考虑到了和 ORTC 的结合,让 WebRTC 可以在微软浏览器上实现,这是 Google 和微软同时推动的阶段性进展。实际上,Google 的 WebRTC 从一开始的计划就是能支持所有的主流浏览器。之前最大的障碍是微软浏览器和苹果浏览器,但是通过 Google 的推动,这些实际上都在发生变化。而 Safari 在 iOS 11 中将支持 WebRTC,既是行业里最后一个重要的浏览器加入这一潮流,也是这一进程的重大胜利。这在 WebRTC 的发展上是里程碑性的事件,将会极大地推动 RTC 技术在各种应用网站上的普及。当然,目前苹果对 WebRTC 的支持还比较粗糙,需要更多的时间成熟,并解决互通上的更多问题。微软则还需要在标准的一致性上参与行业的讨论,缩小和拉近在互通性方面的差距。”

那么,Safari 终于实现对于 WebRTC 的支持,究竟意味着什么?

一直以来,WebRTC 开发者总被一个无法逃避的阴影所笼罩,那就是来自用户的“什么时候微软和苹果的浏览器支持呢?”的疑问,每每此时,却只能给出让用户使用 Chrome 和 Firefox 的解决方案。而在移动端,事情变得更加复杂,因为在 iOS 上,使用原生是唯一的办法,也由此增加了 Swift/Objective-C 的开发成本,尽管 React Native 能够构建支持 WebRTC 的 Android 和 iOS 应用让这一状态有所改善,但却无法从根本上解决问题。

而随着支持 WebRTC 的 iOS 版 Safari 的到来,意味着开发者们可以提供一个在 Web 端、移动端均可运行的响应式网站来实现 WebRTC 通话。对于开发者个人而言,也无需为了完成项目而绞尽脑汁地成为 Objective-C、Swift 或 React Native 方面的专家,通过 Java 即可实现这样一个精细复杂的网络电话应用,由此开发成本将得到大幅降低。

在谈到 WebRTC 移动端实现时,赵斌表示:“在 Safari 支持 WebRTC 后,过去只能在诸如 Chrome 浏览器之间实现的音视频通话,现在在 Safari 以及 Chrome 与 Safari 之间实现了,其影响一定是积极的。可以预见,很多网站及开发者将会更加认真地考虑将这类功能添加至网站及应用中。”

仍有缺憾:WebRTC 应用已遍地开花,但为何大规模单纯使用的成功产品却少之又少?

尽管 WebRTC 应用已经如此广泛,但其也并非完美,比如在稳定性、P2P 连接率、呼叫成功率、网络抗丟包性能等诸多方面,都还有很大的提升空间。所以到目前为止,大规模单纯使用 WebRTC 成功的产品还是凤毛麟角,且几乎都是在网络和设备性能非常成熟的美国,比如 Facebook Messenger、Google Hangouts。

且 WebRTC 是基于浏览器上的技术,大部分都是在浏览器中应用。而使用 WebRTC 在移动端上进行开发,差别还是很大。虽然可以实现,但门槛会很高,难度也会很大。对绝大多数开发者来说,要用 WebRTC 在移动端实现良好体验,不是一件容易的事情,会遇到非常多的坑。在进行 WebRTC 开发之前,开发人员及其团队需要根据自身的情况,来决定是自主开发还是使用第三方 SDK。

对此,赵斌与我们分享了他的经验:“实时通信是一项实现功能容易,但做好很难的技术。我曾在 WebEx 和 YY 工作将近 20 年,非常清楚 RTC 技术的坑。也知道对于一个开发者而言,要自己在 App 和浏览器中实现实时音视频通话,是非常麻烦且累人的事情。很多开发者最容易掉进的坑,就是忘了如果想要用好实时通信技术,归根结底还是在于使用过程中的质量保障,而非研发时写的那些功能代码。”

也正因如此,赵斌和他的团队对 WebRTC 在质量保障方面进行了扩展,比如为了解决 WebRTC 在弱网络环境下抗丟包、通话连通率等问题,在全球部署了虚拟通信网 SD-RTN™(Software Defined Real-time Network),有近 100 个数据中心,同时,为开发者提供一个极简 SDK,帮助其在任何 App、网站上,都能实现高质量的音视频通话、全互动直播。据赵斌介绍,目前这款 SDK 已经被嵌入到了超过 5 亿的终端设备上,仅仅花了1年左右的时间,全球范围内对于实时通信质量保障的强烈需求可见一斑。

总结:实时通信技术无所不及的应用场景

WebRTC 一直是推动 RTC 实时通信技术发展的最主要力量,让实时通信技术能够在互联网很多行业里得到广泛应用。而近两年来,我们也看到了实时通信技术在很多领域正在驱动非常多的创新应用场景,比如去年大热的互动直播,主播与观众随时连麦互动、不同房间的主播连麦聊天等,以及当下正在流行的狼人杀,包括语音、视频甚至是轮麦视频狼人杀,这些场景都是基于 RTC 创造出来的。另外,在 AR/VR 和 AI 等新技术领域,也有诸多结合,如视频通话时的动态滤镜贴纸、戴 VR 眼镜和虚拟世界里的朋友聊天等等。当然,对于传统行业,比如企业协作、金融、客服等领域,都有可能借助 RTC 技术打破地域界限,让更多人可以做居家客服、居家办公 SOHO 等。

“我们认为,随着 WebRTC 被几大浏览器统一支持,应用的成长和发展是必然的。未来,无论在怎样的场景下,实时通信都会成为人们的一个默认选择,无限缩短人与人之间的距离。而用户会越来越多地了解和熟悉这种使用模式,开发者也会越来越多地理解其中的门槛,以及质量保障在实时通信领域的价值。”最后,赵斌如此总结道。

苹果支持WebRTC相关推荐

  1. 无处不在:iOS平台WebView终于支持WebRTC

    正文字数:558  阅读时长:1 分钟 在升级iOS最新版本之后,微信浏览器中对WebRTC的支持变得更完备.至此WebRTC的跨平台互通更近一步.   文 / LiveVideoStack Live ...

  2. Safari即将支持WebRTC

    自从开始做WebRTC开发以来,经常被别人问到,safari浏览器能支持WebRTC吗?我也很希望safari能支持WebRTC,这样就不用写原生WebRTC应用或者Safari浏览器插件了. 很高兴 ...

  3. 支持webrtc的摄像头

    目前google chrome 已经原生支持webrtc了,做低延迟播放的小伙伴们有福了.目前已经有淘宝在售支持webrtc的摄像头.超低延迟播放视频不再是难事了. 网页访问代码 function i ...

  4. iOS 支持webrtc的浏览器 bowser

    目前在android上面有很多支持 webrtc的浏览器, 比如chrome,crosswalk等等,但是对于iOS这一款封闭的环境, 目前没有能支持webrtc的浏览器, 其根本原因在apple这个 ...

  5. iphone换android系统更新不了,苹果支持安卓以旧换新,却被批心不诚,你会用安卓换苹果吗?...

    原标题:苹果支持安卓以旧换新,却被批心不诚,你会用安卓换苹果吗? 来源:江瀚的视野 近日,苹果官网支持安卓手机以旧换新.在购买新iPhone时如果选择换购,增加了多款安卓机型.此前,华为P30/P30 ...

  6. 苹果手机以旧换新价格表_互联网资讯 | 5月19日 星期二|李佳琦饿了么吃播首秀;苹果支持安卓手机以旧换新...

    国内大事件 企业微信公布数据:已为2.5亿微信用户提供专业服务,服务数百万企业 李佳琦饿了么吃播首秀,5分钟销量便破千万 钉钉官宣:用户数破3亿,平均每4个中国人就有一个使用 易观升级易观方舟智能用户 ...

  7. 网页直播/点播播放器支持WebRTC/http-flv/rtmp/m3u8等直播流播放

    H5播放器 H5直播/点播播放器,使用简单,功能强大 支持WebRTC播放; 支持MP4播放; 支持m3u8/HLS播放; 支持HTTP-FLV/WS-FLV播放; 支持RTMP播放; 支持直播和点播 ...

  8. CrossWalk WebView添加支持WebRTC及H264编解码

    前言 1.WebView简介 WebView是Android平台上的一个非常重要的系统组件,用于将一个显示浏览器页面的窗口嵌入到应用程序,并提供一组接口让开发者定制一些页面加载及JavaScript对 ...

  9. 苹果支持安卓手机以旧换新,华为P30顶配最高才抵扣200元?

    疫情让所有的手机厂商都不好过,苹果当然也未能幸免.在华尔街投行KeyBanc Capital Markets发布的最新手机市场研究报告中就显示,苹果4月份的iPhone销量同比下降77%,环比下降56 ...

  10. H5视频会议,直播,通话,教学,支持Webrtc、rtmp、sip、rtsp转协议、IPCAM、白板、桌面共享、免插件、web全平台、视频融合系统研发笔记。...

    随着互联网深入,视频互通互联的需求越来越多,近些年国家要进一步发展5G网络,手机等设备硬件也越来越好,对视频互通性,及时性,便捷性提出了新的需求. 1,H5-WEB接入,全平台web通用: a.在针对 ...

最新文章

  1. HA03-fence设置
  2. 第九章、文件与文件系统的压缩与打包 3. 打包命令: tar
  3. 【JQuery】ajax 调用
  4. 在 Visual C++ 中使用内联汇编
  5. 行为型设计模式之解释器模式(Interpreter)
  6. win10美化--打造专属我的windows
  7. 重组人骨形态发生蛋白-2(BMP 2)的研究意义
  8. 如何在Ubuntu上安装Couch DB 1.5
  9. 正睿OIday3总结
  10. Google Play 下载 apk
  11. 数据结构单向链表(C++)
  12. 小米手机全球已舍弃“MI”品牌,全面改用“xiaomi”全称品牌
  13. 个人永久性免费-Excel催化剂功能第105波-批量调整不规范的图形对象到单一单元格内存储...
  14. linux 使用 nginx 搭建 zookeeper 集群
  15. DBeaver小松鼠:数据库客户端界面工具DBeaver连接Hive
  16. 微信直播的应用场景有哪些
  17. window10 安装语言包出现“很抱歉,我们无法安装此功能。你可以稍后重试。错误代码: 0x80070422”
  18. Java基础知识11——数组
  19. 局域网即时通信软件都有哪些?要如何选择?
  20. work2vec的实战应用

热门文章

  1. 对注册会计师CPA的简单了解
  2. linux运维工作内容及岗位要求
  3. ansys添加力矩_ansys中施加力矩
  4. 国庆集训1101+1103(未完成)
  5. Ip以及主机名称配置
  6. 坚果云企业版服务器端,坚果云企业版
  7. 培养创造性思维的20个方法
  8. 系统分析与设计方法---结构化分析与设计
  9. Win7开机加速全攻略一:序章和开机原理
  10. 麻理工MIT的脑计划eyewire (顺便学习一下医学影像知识)