WebRTC-一对一通话
流程图
通话过程
图解:
- WebRTC 终端:负责音视频
采集
、编解码
、NAT穿越
、音视频数据传输
- Signal 信令服务器:负责
信令处理
、如加入房间、离开房间、媒体协商消息的传递 - STUN/TURN服务器:负责获取WebRTC终端在
公网
的IP地址,以及NAT穿越失败后的数据中转
WebRTC 进行通话的大体过程
音视频采集
- 进入房间前,先进行检测设备可用性,当可用时则进行音视频数据的采集
采集后的处理
- 一方面:采集的数据会进行用作预览,即自己可以看到画面
- 另一方面:可以将其录制下来保存为文件、等视频通话结束后,上传到服务器后可以让用户回看之前的内容
获取数据就绪后 - 房间的创建和加入
- WebRTC终端向信令服务器发送「加入」的信令,Signal服务器收到消息后会进行创建房间的操作 - 推流端
- 另一端也会做差不多一样的事,不同点在于不是创建房间,而是加入房间 - 观看端
- 第二个终端(观看端)成功加入房间后,第一个用户(推流端)会收到「另一个用户已成功加入」的消息
获取数据就绪后 - 音视频数据传递
- 第一个终端(推流端)会创建“媒体连接”对象,即RTCPeerConnection,然后将采集到的音视频数据通过RTCPeerConnection对象进行编码,最终通过P2P传送给对方;
- P2P穿越失败后:为保障音视频数据正常,需要通过TURN服务器进行音视频数据中转
- 第二端(观看端)接收到数据后,会先将收到的数据进行解码,最后将其展示出来,这样就实现了一对一的单通
- 实现互通的方式:双方都需要通过RTCPeerConnection对象传输自己端的数据,然后另一端进行接收
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1430797759@qq.com