您当前的位置是:  首页 > 新闻 > 文章精选 >
 首页 > 新闻 > 文章精选 >

完整WebRTC技术及应用概要

2019-01-07 09:30:39   作者:朱利中(james.zhu)   来源:CTI论坛   评论:0  点击:


  Web Real-Time Communication(WebRTC)是最近几年非常热门的一项新的基于浏览器的技术,很多VoIP的厂家和应用集成厂家的解决方案中都逐渐支持了WebRTC技术。WebRTC技术通过对浏览器或者移动终端应用,结合API接口,实现了视频,语音功能。当然,WebRTC受到如此多重视,当然也离不开主要的推动者Google,微软,Mozilla等大牌厂家的鼎力支持,以及几个着名的协议组织,例如,W3C和IETF的协助。
  虽然,网络上有很多关于WebRTC的文章,这些文章通过不同的角度对WebRTC做了非常详细的介绍,WebRTC官方网站也发布了有很多的文档。但是,很多网上的文章比较零散,讨论的角度都不一样。另外,很多权威的文档和纸质书基本上都是以英文出版,一些读者的英文阅读能力没有那么高的话,可能影响对技术的消化吸收。为了给中国读者提供一个比较全面的完整的关于WebRTC的技术以及应用概要,笔者希望通过一个完整的篇幅,对WebRTC技术做一个比较系统,完整地描述介绍,其内容包括从WebRTC背景知识,媒体流,相关的协议栈,NAT处理,安全以及隐身设置,WebRTC当前的问题以及未来的提升,WebRTC用户使用场景,和开源WebRTC媒体服务器以及视频会议,WebRTC测试工具等知识点,让普通读者能够通过一篇文章就对WebRTC技术有一个非常清晰的思路,为进一步学习WebRTC技术做一个有效铺垫,读者可以快速进入到真正的WebRTC技术应用开发中。在十一个章节中,笔者会根据WebRTC技术的架构以及相关的应用做一个完整的介绍。
  1、WebRTC的技术背景介绍
  首先让我们简单了解一下基本的通信背景知识。如果从实时通信和语音协议的发展来看,最早的语音通信协议应该发生在1977年,人们把实时通信技术通过Network Voice Protocol(NVP-rfc741)在网络上应用,并且演示了其技术的可用性。在语音发展过程中,实时通信开始也经历了多个历史阶段,并且结合其他的技术逐渐实现了突破。以下是一个关于语音技术的部分阶段的发展进程。
  如下图示例所示,最初的工作模型也相对比较简单,随着技术的不断完善和协议的修改,今天的语音技术已经出现了很大的突破。具体关于NVP的规范,读者可以查阅rfc741获得详情。


  在提到实时通信技术或者WebRTC技术,我们还要简单介绍一下实时传输协议RTP,此技术最早在1992年左右开始使用,1996年作为一个标准发布。目前RTP是VoIP,SIP或者WebRTC的其中一个部分。
  除了RTP协议以外,H323和SIP协议也是我们进入讨论WebRTC之前需要介绍的背景知识。H323在1996年有ITU发布,SIP在1999年由IETF发布。在最近几十年的语音视频领域,这两种协议在语音和视频技术扮演者非常重要的角色。当然,现在被用户和市场认可的是SIP协议,H323用户逐渐变少。


  WebRTC受到青睐原因很多,我们会在下面的章节中加以介绍。其主要原因是它的易用性,并且可以借用当前用户浏览器的其他媒体设备,例如麦克风和摄像头,通过浏览器的API接口直接访问这些网络资源,用户无需再安装下载其他的插件来获得对网络资源的支持。WebRTC也可以实现点对点的网络互动,可以避免远程服务器的网络访问问题。特别是VoLTE网络环境中,语音可以通过数据通道来实现,这样就会极大方便终端用户的语音视频通信。另外,现在很多的在线游戏也可以通过浏览器的形式展现游戏场景,用户实现了和同学,朋友通过语音,数据和视频同时进行互动交流。
  现在,我们简单介绍一下WebRTC的功能实现。WebRTC的功能包括以上几个核心的模块和API接口。用户浏览器通过和HTML,其他的脚本语言和客户端的接口进行调用。特别注意,在浏览器的RTC功能中,特别包括了传输的编码,回声处理等功能。其他的媒体数据可以通过RTC功能和WebRTC实现通信。
  WebRTC受到市场的认可有很多原因。它主要包括以下几个方面的原因:
  • 平台和设备的独立。开发人员可以通过支持WebRTC的浏览器开发基于WebRTC的各种应用,无需担心终端和操作系统层面的兼容性问题。另外,WebRTC也提供了标准的API(W3C)和其标准的协议支持(IETF)避免了平台兼容性的问题。
  • 语音和视频的安全处理, WebRTC通