webrtc什么意思
WebRTC,网页即时通信(Web Real-Time Communication),实现了基于网页的视频会议。WebRTC具有免安装,方便接入的特点,它不需要安装任何插件,在浏览器上就可以实现网页端的实时通信。
一、 webrtc简介
WebRTC是一个开源项目,旨在使得浏览器能为实时通信(RTC)提供简单的JavaScript接口。说的简单明了一点就是让浏览器提供JS的即时通信接口。这个接口所创立的信道并不是像WebSocket一样,打通一个浏览器与WebSocket服务器之间的通信,而是通过一系列的信令,建立一个浏览器与浏览器之间(peer-to-peer)的信道,这个信道可以发送任何数据,而不需要经过服务器。并且WebRTC通过实现MediaStream,通过浏览器调用设备的摄像头、话筒,使得浏览器之间可以传递音频和视频。
二、 webrtc的三个接口
WebRTC实现了三个API,分别是:
①MediaStream:通过MediaStream的API能够通过设备的摄像头及话筒获得视频、音频的同步流
②RTCPeerConnection:RTCPeerConnection是WebRTC用于构建点对点之间稳定、高效的流传输的组件
③RTCDataChannel:RTCDataChannel使得浏览器之间(点对点)建立一个高吞吐量、低延时的信道,用于传输任意数据
三、WebRTC的功能
① 能用于音视频实时互动,视频会议
② 能用于游戏、即时通讯、文件传输等等
③ 它是一个采集,编码,传输音视频处理(回音消除、降噪等)
四、WebRTC架构
整体架构分为应用层和核心层。应用层提供实现相关业务逻辑Api,核心层提供应用层需要的核心API。
① 第一层为C++ API,其中最主要的是PeerConnection,这个接口需要重点学习和掌握
② 第二层为Session层,为上下文管理层,应用里的音频和视频及非音视频的数据处理逻辑都可以在这层进行。
③ 第三层为引擎和传输层,包括音频引擎和视频引擎,以及音视频的传输,这也是整个架构中最重要的一层。
④ 第四层与硬件相关,包括音视频的采集和网络的IO。