WebRTC技术专题(2)【大势所趋,迈向认识 WebRTC 的第一步】
发布网友
发布时间:2024-09-26 18:05
我来回答
共1个回答
热心网友
时间:2024-10-04 02:48
人生的挑战,无处不在,满怀信心,轻装上路,明天永远是充满希望的战场。
承接上文的内容介绍完相关WebRTC技术的概念和发展历程后,开始初步摸索一下相关WebRTC技术的功能和原理。
WebRTC名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。
WebRTC应用包括下面四个主要的概念:音视频引擎、C++ API、Javascript API以及信令服务器。
音视频引擎负责处理音视频数据,C++ API提供底层通信功能,Javascript API则在浏览器端实现API调用,使前端开发者可以方便地接入WebRTC。信令服务器用于建立和管理会话,传递媒体流和候选地址信息。
WebRTC已经纳入HTML5标准,目前支持WebRTC协议的浏览器有:Chrome、Firefox Opera,IE不支持。
WebRTC的核心组件包括音视频引擎、C++ API、Javascript API和信令服务器。信令服务器传送的数据包括媒体流、候选地址等,其中媒体流是必备功能。
SDP协议用于交换信令信息,包括候选地址等,用于完成ICE打洞过程。
WebRTC与SIP互通需要解决信令层和媒体层的问题,通过信令转换和媒体编码转换,实现会话的建立。
在多方会话或需要对媒体做额外处理的情况下,可以采用一个集中式媒体服务器,这种结构能够扩展非常大的会话,并减少新加入者所需的处理工作量。媒体服务器也可对媒体进行分析、处理、保存等工作。
通过navigator.getUserMedia()接口可以获取视频或音频数据,constraints 参数可以选择是否获取视频音频。RTCPeerConnection接口用于确定ICE服务器、交换 SDP。创建RTCPeerConnection对象后,可以将媒体流放入对象中,通过offer和answer交换SDP描述符,完成连接过程。
ICE打洞过程包括接收对方网络候选,将其加入,监听对方发送的媒体是否可用,并播放媒体。
RTCDataChannel接口用于创建数据通道,可以用于发送文本或是文件,另一端通过ondatachannel事件获得RTCDataChannel对象。