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.整体框架

webrtc学习笔记_第1张图片

 

7.音视频采集

枚举音视频设备

采集音视频数据

8.webrtc信令系统

webrtc学习笔记_第2张图片

信令系统的作用:

①让双方进入到同一个房间进行管理

②交换双方的媒体能力(SDP)

③交换双方的candidate数据

9.房间管理状态机

webrtc学习笔记_第3张图片

10.信令系统的实现

socket.io

websocket/protoo

11.客户端信令消息

join加入房间

leave离开房间

message端到端消息

12.端到端信令消息

offer消息

answer消息

candidate消息

13.服务端信令消息

joined已加入房间

otherjoin其他用户加入房间

full房间人数已满

leaved已离开房间

bye对方离开房间

14.直播系统消息处理流程

webrtc学习笔记_第4张图片

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关系图

webrtc学习笔记_第5张图片

意思大概就是能直接用本机地址通信就直接用本机地址,不能的话就NAT,还不行的话就通过中继。

20.媒体协商过程

webrtc学习笔记_第6张图片

21.SDP规范

(1)会话层

会话的名称与目的

会话的存活时间

会话中包括多个媒体信息

(2)媒体层

媒体格式

传输协议

传输IP与端口

媒体负载类型

22.webrtc中的SDP

SDP组成:会话元,网络描述,流描述,安全描述,服务质量

23.客户端流程图

(1)加入房间

webrtc学习笔记_第7张图片

(2)离开房间

webrtc学习笔记_第8张图片

24.端对端连接的基本流程

webrtc学习笔记_第9张图片

25.多人音视频架构

mesh方案

MCU方案

SFU方案

26.mesh通信模型

所有人之间两两建立P2P连接

27.MCU通信模型

multipoint conference unit

服务器把所有人的视频合并为一路视频,音频合并成一路音频,并转发给所有人,注意。给一个人转发的混合后的音视频不包含这个人本身的音视频。

优点是带宽小,缺点是不够灵活,因为每个终端收到的都是混合后的一路音视频,无法在客户端侧分别处理各路音视频。

28.SFU通信模型

selective forwarding unit

中心服务器转发,将收到的音视频转发给所有其他人。

这样每个终端都能收到分开的各路音视频,可以灵活的进行处理,但占用带宽大。

29.一些成熟的开源架构

mediasoup架构

medooz架构

janus架构

licode架构

30.DTLS协议

webrtc学习笔记_第10张图片

你可能感兴趣的:(RTC)