WebRTC简介

什么是WebRTC?

2008年,Gmail视频聊天火了。2010年5月,Google以6820万美元收购VoIP软件开发商Global IP Solutions的GIPS引擎,GIPS为RTC开发了许多组件,比如编码和回声消除技术,后谷歌将其改名为“WebRTC”。WebRTC使用GIPS引擎,实现了基于网页的视频会议,并支持722,PCM,ILBC,ISAC等编码,同时使用谷歌自家的VP8影片解码器;同时支持RTP/SRTP传输等。

谷歌开源了GIPS的相关技术,并且与IETF和W3C等标准化组织达成了行业共识。2011年5月爱立信构建了第一个WebRTC应用。2012年1月,谷歌已经把这款软件集成到Chrome浏览器中。同时FreeSWITCH项目宣称支持iSAC audio codec。

WebRTC代表Web实时通信。WebRTC是一项深刻的技术,它将统一通信提升到另一个层次。它本质上是HTML5 JAVASCRIPT规范。它带有一组Web API和通信协议,可在Web浏览器之间建立双向,不间断的音频/视频启用的通信。这些包括数据流,STUN / TURN服务器,信令,JSEP,ICE,SIP,SDP,NAT,UDP / TCP,网络套接字等。这些API是无插件的,不需要其他繁琐的安装和下载。尤其是,企业可以通过将WebRTC用于视频会议,点击通话,对等流和即时消息传递而从中受益匪浅。

组成

  • 影像引擎(VideoEngine)
  • 音效引擎(VoiceEngine)
  • 会议管理(Session Management)
  • iSAC:音效压缩
  • VP8:Google自家的WebM项目的影片编解码器
  • APIs(Native C++ API, Web API)
    WebRTC简介_第1张图片
    Web API
    面向第三方开发者的WebRTC标准API(Javascript),使开发者能够容易地开发出类似于网络视频聊天的web应用,需要注意的是可能在不同浏览器中API接口名会不太一样, 所以推荐使用这个JS适配器来协调各个浏览器的不同接口。 这些API可分成Media API、 RTCPeerConnection、Peer-to-peer Data API三类:
    Media API
    MediaStream:MediaStream用来表示一个媒体数据流。 MediaStreamTrack:在浏览器中表示一个媒体源。
    RTCPeerConnection
    RTCPeerConnection:一个RTCPeerConnection对象允许用户在两个浏览器之间直接通讯。 SDP: 用来描述当前连接者想要传输的内容,支持的协议类型,支持的编解码类型等。 RTCIceCandidate:表示一个ICE协议的候选者,简单的说,就是目标节点的IP以及端口。 RTCIceServer:表示一个ICE Server,其主要用于当前主机的IP发现,通过和ICE Server通讯,我们会得到一组可供连接使用的IP:Port候选值,双方通过交换ICE候选值来建立起连接。
    Peer-to-peer Data API
    DataChannel:数据通道( DataChannel)接口表示一个在两个节点之间的双向的数据通道,该通道可以设置成可靠传输或非可靠传输 。
    WebRTC Native C++ API
    本地C++ API层,使浏览器厂商容易实现WebRTC标准的Web API,抽象地对数字信号过程进行处理。
    Transport / Session
    传输部分可基于TCP/UDP,会话层组件采用了libjingle库的部分组件实现
    AudioEngine
    音频引擎是包含一系列音频多媒体处理的框架,包括从视频采集卡到网络传输端等整个解决方案。
    VideoEngine
    视频引擎是包含一系列视频处理的整体框架,从摄像头采集视频到视频信息网络传输再到视频显示整个完整过程的解决方案。

是什么使WebRTC如此重要?

WebRTC为开发人员提供了一组独特的功能和改进,使其成为开发人员社区中被广泛接受的技术。让我们看一下WebRTC的产品。

它是一个开源项目: WebRTC是一个开源平台。因此,它适用于希望使用此技术的任何人构建应用程序。
它不断发展和改进:随着每个发行版本的出现,WebRTC蓬勃发展,以用户为中心,功能丰富且可靠。每个新发布的版本均实现了清晰的用户体验,还解决了先前版本中注册的查询。
简化的对等通信:这使开发人员能够使用WebRTC来促进浏览器之间的视频聊天,视频通话和对等文件共享,从而使Web应用程序提供更丰富的用户体验。
低带宽消耗和延迟:点对点通信机制可降低带宽消耗并减少用户共享文件时可能面临的延迟。
嵌入式音频/视频通信: WebRTC提供的广泛功能允许开发人员将音频/视频通信嵌入其Web应用程序。
安全的数据传输:它通过源到目标的数据传输来保护数据。通过HTTPS,本地主机等访问JavaScript应用程序时,使用加密来保护组件的安全。
受广泛使用的Web浏览器和移动设备支持:这有助于开发人员通过html5嵌入标签来嵌入音频或视频标签。原因是,互联网上的所有主要浏览器都支持WebRTC。

你可能感兴趣的:(webRTC,webrtc,audio,VoIP,简介)