音视频之webRTC基础

/ 0评 / 0

webRTC是一个开源的,提供各种终端(浏览器,PC/Android/IOS客户端)实时音视频通信的项目

应用场景:

端对端的通信,需要信令服务器+STUN/TURN服务器

信令服务器:用户终端之间交换信息的服务器,包括业务信息,媒体信息(SDP),网络信息(candidate),可以基于socket.io开发,也可以基于Janus开发

STUN:Session Traversal Utilities for NAT,用户得到终端的外网IP/端口,让终端之间,尝试能否根据外网IP&端口直接通信,STUN并不是每次都能成功地为需要NAT的通话设备分配IP地址,如果分配失败,需要使用TURN做辅助

TURN:Traversal Using Relays around NAT,用于终端之间,无法直接P2P通信的时候,做一个中继服务。终端A把音视频传递给TURN服务器,终端B从TURN服务器读取A的音视频数据

两个协议整合到一起,是一个ICE框架(Interactive Connectivity Establishment交互联通建立方式),服务器也叫做ICE服务器

linux下的库libnice,基于库实现的linux服务程序,叫做coturn

服务器结构:

参考:

https://blog.csdn.net/newchenxf/article/details/111079656