WebRTC一对一视频通话

0 点赞
0 条评论
750 次浏览
发布于 3 个月前

一、介绍

WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现音视频流或者其他任意数据的传输。

二、Offer and Answer(SDP)

WebRTC 使用 Offer-Answer 模型交换 SDP,Offer 中有 SDP,Answer 中也有,webrtc通过SDP协商,告知对端支持的音视频编码类型,编码器参数,音频或者视频的路数,以及与音视频相关的采样率,编码等等,双方根据各自的能力情况,协商出待传输音视频流的具体参数。

SDP样例:

v=0
o=- 5910110687297165449 2 IN IP4 127.0.0.1
s=-
t=0 0
...
 
//第一个媒体流,音频流
m=audio 54797 UDP/TLS/RTP/SAVPF 8
...
 
//第2个媒体流,视频流
m=video 9 UDP/TLS/RTP/SAVPF 125
...

三、ICE Candidate

WebRTC candidate是一个网络地址信息,用于建立连接。具体来说,它包括协议簇、IP地址、端口号和类型等信息。在WebRTC的交互式连贯建设(ICE)过程中,会收集候选地址并进行替换和按优先级尝试建立关联。在建立连接前,需要获取对端的一些基本信息,如IP地址、端口号、传输协议、加密算法等。而候选地址正是WebRTC用来形容它能够关联的远端的基本信息,因此候选地址是包含IP地址、端口号、协议的一个信息集。

icecandidate样例:

 {
    "candidate": "candidate:foundation icegroupid type priority ip port typ host generation x ufrag xxxx network-cost 999",
    "sdpMid": "0",
    "sdpMLineIndex": 0
  }
  {
    "candidate": "candidate:545662605 1 udp 2113937151 a8e7c788-6636-4392-b5af-08253ad10ee5.local 51579 typ host generation 0 ufrag 0XDd network-cost 999",
    "sdpMid": "0",
    "sdpMLineIndex": 0
  }

四、连接流程

1、交换SDP过程

2、连接过程

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/RTCPeerConnection

源码:https://github.com/imingdev/webrtc-demo

版权所属:开发日记
转载时必须以链接形式注明原始出处及本声明。
"赞助我们,我们才能做的更多&更好"
赞助支持
还没有评论
写下你的评论...