在迭代不休的技术苍穹之中,要论2019年最火热的技术,那么非5G莫属。5G的到来,不仅强化了4G网络的稳定性、高频传输技术,还为移动互联网时代主流的短视频、直播、云游戏等娱乐行业带来更多的可能性。 而作为这些新兴行业的支撑,不得不提及实时通信技术。对于诸多业界开发者而言,对实时通信其实也并不陌生,毕竟从腾讯QQ音视频,到风靡国内的狼人杀、大吉大利的吃鸡游戏、线上抓娃娃、直播答题、线上KTV,再到如今的微信小程序音视频等,其背后都离不开实时音视频的解决方案,更离不开WebRTC技术的支持。 对此,我们不禁产生疑问,WebRTC究竟有何技术优势可以征服各种应用程序?当前WebRTC的发展又处于一个什么样的阶段?它是否有可能在未来实现浏览器、移动端的全面覆盖?基于此,我们在今年由声网Agora主办的AllThingsRTC实时互联网会议期间,采访了微软首席架构师BernardAboba,探讨WebRTC的前生今世以及在微软新版Edge中WebRTC的应用现状与下一步计划。 微软首席架构师兼W3CWebRTC工作组联合主席BernardAboba 注:由声网Agora主办的AllThingsRTC实时互联网会议已于6月17日在美国旧金山市中心Parc55酒店落幕。作为全球首屈一指的实时音视频技术盛会,此次会议汇集来自谷歌和微软等财富100强科技公司的专家以及新兴创业公司的企业家,以及游戏社交直播、ARVR等前沿技术和领域的一线技术专家。1、WebRTC的前世 无论是在PC互联网时代、移动互联网时代,还是当下以云计算、人工智能、IoT为主导的万物互联时代,WebRTC的到来都是实时互联网技术标准演进过程中至关重要的一个节点。 回忆Web的早期发展,设备和Web服务器之间的通信非常有限。在访问网站时,只有当用户在地址栏中输入新地址或点击超链接时,浏览器才能与存储网站的网络服务器进行通信。而这就是静态网页需要运行的全部内容。 但是彼时的一些开发者意识到Web应该能以更具吸引力的方式实践应用。正因此,为了使各大网站更具动态性和响应性,诸如Ajax类似的框架最终在90年代后期被相继开发,从而浏览器也能够实时地与Web服务器通信、允许创建适当的Web应用程序或即时响应用户操作。不过,彼时的实时通信技术在Web浏览器和服务器之间仍存在很大的局限性。 具体而言,过去,两个不同用户的Web浏览器之间的通信速度很慢,因为其二者之间的所有流量都必须通过中间的服务器,这产生了明显的延迟。但是,我们也发现直接收发消息之类的延迟并不算是真正的问题。这是因为发送消息的一个用户和接收消息的另一个用户之间几秒钟的差异并没有真正影响到整体的传输效果。但是,服务器延迟导致了一系列的连接延迟,不过如果没有这种延迟则无法实现用户之间互相呼叫等实时视频的服务。 如今WebRTC的出现,可以完全实现桌面和基于移动的多人多媒体聊天应用程序。 C音视频学习资料免费获取方法:关注音视频开发T哥,点击链接即可免费获取2023年最新C音视频开发进阶独家免费学习大礼包!2、WebRTC的今生 那具体而言,到底何为WebRTC? WebRTC(WebRealTimeCommunication,网页即时通信),是一个支持网页浏览器进行实时语音对话或视频对话的技术。它的起源,要从2010年Google以6820万美元收购VoIP软件开发商GlobalIPSolutions的GIPS引擎谈起,在经过收购之后没多久,Google将该引擎改名为WebRTC,并宣布向开发者们开源了源代码。 2012年,Google将WebRTC集成到Chrome浏览器中。随后,在它的带动下,Mozilla、Opera、Ericsson等PC浏览器以及手机浏览器均开始支持WebRTC技术。 2017年,苹果在WWDC17上正式宣布其浏览器内核WebKit也正式支持WebRTC。 如今,继去年微软宣布Edge将采用Chromium开源项目之后,就WebRTC技术应用而言,BernardAboba表示,基于Chromium的新版Edge现在可在预览版中使用。新版本的Edge提供了WebRTC开发者常用的许多功能,如支持数据通道、RTCPeerConnection中的Strem、VP9编解码器和MediaStreamRecording。 事实上,除了以上的浏览器以及文章伊始提及国内主流的应用程序之外,在Discord、GoogleHangouts和FacebookMessenger等一些国内的多媒体网络应用中,也都需要WebRTC才能实现。3、WebRTC一统浏览器、移动端的实时音视频天下? 按照这样的发展趋势,WebRTC能否一举成功夺下各层面的实时音频霸主之位? 其实,在WebRTC的全名WebRealTimeCommunication中,我们从Web一词就可以看出,最初这项技术是为浏览器量身打造用以实时音视频能力而准备的。而WebRTC项目一开始的初衷也是让Web开发者能够基于如Chrome、Edge、Firefox等浏览器平台轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也仅需关注多媒体的数字信号处理过程,只需编写简单的JavaScript程序即可实现。 不过,就浏览器应用而言,WebRTC的发展还面临着诸多的挑战。对此,BernardAboba表示:浏览器面临的主要挑战是完成WebRTC1。0API的实现,以及消除实现差异。为了达到提议标准,WebRTC工作组需要记录每个功能的两个实现,并通过Web平台测试(WPT)的结果展示互操作性。当下,W3C在实现这一目标方面一直在稳步前进,但在WebRTC以及WebRTCStats等相关规范方面仍有许多工作要做。其次,就WebRTC自身的发展而言,WebRTCAPI在其历史中经历了三次主要迭代,最后一次迭代是addTransceiverAPI,这是WebRTC1。0候选推荐中的首选API。随着浏览器现在实施候选推荐标准并融合UnifiedPlanSDP,WebRTC工作组正在为开发人员一直要求的互操作性方面而努力,并且W3C需要将规范推进到推荐的标准中。就需要改进的领域而言,W3C仍然需要改进同步广播等高级功能的测试覆盖率,并将WebRTCStatistics规范纳入候选推荐标准中。当前实时音视频通信领域,也并不只有WebRTC一种可供选择的技术。事实上,在WebRTC诞生之前,很多领域的公司都有自己自研的通信协议。而如何保证自研协议与WebRTC协议在Windows、Mac等平台上做到互通?BernardAboba建议道,专有的自研协议和WebRTC的互操作性通常使用网关实现。使用Janus等工具,开发人员可以通过在已建立的框架内构建模块。但是,在各种情况下测试兼容性的任务仍然很困难。对此,BernardAboba也表示,由CosmoConsulting开发的测试框架(如KITE)可能会有所帮助。 然而,除此之外,WebRTC在移动端的应用也一直被开发者所诟病。针对这一点,BernardAboba坦言道,对移动或嵌入式设备优化WebRTC,是一项重大的挑战,尤其是在内存、应用程序大小,以及连接性和功耗等方面。 不过当下,W3C组织为了解决这些难题,该团队的开发者们经常需要创建自定义构建,其中包含了许多更改改进,举例说明,例如,OrtcLib创建了OpenPeerFoundation的RobinRaymond,支持使用ORTCAPI在移动设备上进行开发,同时允许开发人员自定义库,以便仅包含所需的功能。事实证明这种方法非常成功。 原文链接:WebRTC将一统实时音视频天下?