webrtc学习笔记
webrtc学习笔记
内容整理自2019RTC大会webrtc工作坊李超老师演讲ppt
1.实时通信的主要矛盾
实时通信与网络传输的矛盾
网络传输质量与音视频服务质量的矛盾
2.webrtc能做啥
音视频实时互动
游戏,即时通讯,文件传输等
音视频处理(回音消除,降噪)
3.webrtc的主要内容
音视频采集
webrtc信令服务器的实现
NAT,STUN,TURN,ICE
媒体协商
webrtc使用的sdp
1对1实时通话
4.服务质量的主要内容
(1)TCP/UDP如何选择
(2)如何保证网络服务质量
延迟低,丢包 RTX
延迟高 FEC
jitterBuffer 网络平滑,防止乱序
(3)网络带宽的评估
GCC-REMB
GCC-TransportCC
基于丢包的评估算法
基于延迟的评估算法
(4)减少网络上传输的内容
固定带宽减少内容:动态码流,simulcast,SVC,业务定制
5.流媒体服务器的主要内容
多人互动架构方案
各媒体服务器架构模型
如何实现流媒体服务器
6.整体框架
7.音视频采集
枚举音视频设备
采集音视频数据
8.webrtc信令系统
信令系统的作用:
①让双方进入到同一个房间进行管理
②交换双方的媒体能力(SDP)
③交换双方的candidate数据
9.房间管理状态机
10.信令系统的实现
socket.io
websocket/protoo
11.客户端信令消息
join加入房间
leave离开房间
message端到端消息
12.端到端信令消息
offer消息
answer消息
candidate消息
13.服务端信令消息
joined已加入房间
otherjoin其他用户加入房间
full房间人数已满
leaved已离开房间
bye对方离开房间
14.直播系统消息处理流程
15.webrtc传输
NAT(network address translator)
STUN(simple traversal of UDP through NAT)
TURN(traversal using relays around NAT)
ICE(interactive connectivity establishment)
16.NAT类型
完全锥形NAT
地址限制锥形NAT
端口限制锥形NAT
对称性NAT
17.candidate类型
主机候选者
反射候选者
中继候选者
18.ICE具体做些什么
收集candidate
对candidate pair排序
连通性检查
19.candidate关系图
意思大概就是能直接用本机地址通信就直接用本机地址,不能的话就NAT,还不行的话就通过中继。
20.媒体协商过程
21.SDP规范
(1)会话层
会话的名称与目的
会话的存活时间
会话中包括多个媒体信息
(2)媒体层
媒体格式
传输协议
传输IP与端口
媒体负载类型
22.webrtc中的SDP
SDP组成:会话元,网络描述,流描述,安全描述,服务质量
23.客户端流程图
(1)加入房间
(2)离开房间
24.端对端连接的基本流程
25.多人音视频架构
mesh方案
MCU方案
SFU方案
26.mesh通信模型
所有人之间两两建立P2P连接
27.MCU通信模型
multipoint conference unit
服务器把所有人的视频合并为一路视频,音频合并成一路音频,并转发给所有人,注意。给一个人转发的混合后的音视频不包含这个人本身的音视频。
优点是带宽小,缺点是不够灵活,因为每个终端收到的都是混合后的一路音视频,无法在客户端侧分别处理各路音视频。
28.SFU通信模型
selective forwarding unit
中心服务器转发,将收到的音视频转发给所有其他人。
这样每个终端都能收到分开的各路音视频,可以灵活的进行处理,但占用带宽大。
29.一些成熟的开源架构
mediasoup架构
medooz架构
janus架构
licode架构