初学WebRTC 实现音视频聊天

MediaDevices

  • enumerateDevices()可用的媒体输入和输出设备的列表,例如麦克风,摄像头,耳机,切换设备时用
  • getDisplayMedia() 选择和授权捕捉用户选择的屏幕区域以及一个可选的音频轨道
  • getSupportedConstraints()监视客户端所支持的约束属性,比如视频高宽,码率等
  • getUserMedia()提示用户授权使用媒体输入,媒体输入会产生MediaStream,里面包含了请求的媒体类型的音视频

A-> Create HTCPeerConnection-流->Add Stream->CreateOffer<->Send Offer SDP <->CreateAnswer(B)
A-> Create HTCPeerConnection-流->Add Stream->CreateOffer->OnceCand date<->send Cand date <->Add Cand date(B)
A-> Create HTCPeerConnection-流->Add Stream->CreateOffer->Stream Peer to pour

WebRTC --SDP格式解析
o = 生成id 版本号 ip地址
t = 开始时间 结束时间
a= group:BUNDLE audio video 流包含音频还是包含视频(默认都会包含)
a=stream id
m=音频 端口 UDP传输TLS加密传RTP的包根据SAVPF监控传输状态 支持编码
a=协议
a=安全机制
a=加密sha-256
a=setup:actpass 当成客户端或者服务端
a=mid:audio里面是音频
a=sendrecv可以发送也可以接收
a=音频

WebRTC 点对点连接,不需要服务器进行干涉
公网IP进行交互,NAT防火墙
STUN 服务器(google服务器)获取公网ip
TURN 服务器 自己的服务器

createOffer 别人发起视频请求
createAnswer 我接听
SDP (SessionDescription) 告诉两个机器用哪种方式转码
Candidate 参与者 触发条件
在你给我answer时候
get anser 把对方添加到自己的 candidate
给对方发get offer 那接收方就要把发起者添加到 Candidate
电脑a <->NAT<->Relay server<->NAT<->电脑b

//agora.io/cn

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mr.杰瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值