初识WebRTC

什么是WebRTC

WebRTC是一种通过js语言来实现音视频处理的规范。目前市面上的主流浏览器都已支持WebRTC库,也就是说WebRTC在浏览器之间进行实时音视频通信的技术已经十分成熟了。

WebRTC处理过程

WebRTC 在实现音视频实时通话的过程大致可以分为四部分,即两个WebRTC终端一个信令服务器(Signal)一个STUN/TURN服务器。

WebRTC终端:负责音视频采集、编解码、NAT穿越、音视频数据传输。

信令服务器:负责信令处理,如加入房间、离开房间、媒体协商消息的传递等。

STUN/TURN服务器:负责获取WebRTC终端在公网的IP地址,以及NAT穿越失败后的数据中转。

WebRTC进行音视频通话的大体过程

当一端进入到房间之前,它首先会检测自己的设备是否可用,如果设备可用,它就可以开始采集自己的音视频数据了。对于采集到的数据,一方面可以用于预览,另一方面可以将数据保存为文件。

 当第二个终端进入房间之后,第一个终端就会收到另一个用户已经加入成功的消息。此时第一个终端会创建“媒体连接”对象,即RTCPeerConnection对象,并将采集到的音视频数据通过RTCPeerConnection对象进行编码,最终通过p2p传送给对端。

当然在进行p2p穿越时很有可能会失败。所以,当p2p穿越失败的时候,为了保障音视频数据仍然可以互通,则需要通过TURN服务器进行音视频中转。

当音视频数据来到对端后,对端首先会将收到的音视频数据进行解码,然后再通过播放器将其展示出来。这样就完成了音视频数据从一端到另一端的单通。

如果要实现双方互通那么双方终端都需要通过各自的RTCPeerConnection传输自己这一端的音视频数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值