webrtc学习笔记

目录

webrtc学习笔记

内容整理自2019RTC大会webrtc工作坊李超老师演讲ppt

实时通信与网络传输的矛盾

网络传输质量与音视频服务质量的矛盾

音视频实时互动

游戏,即时通讯,文件传输等

音视频处理(回音消除,降噪)

音视频采集

webrtc信令服务器的实现

NAT,STUN,TURN,ICE

媒体协商

webrtc使用的sdp

1对1实时通话

(1)TCP/UDP如何选择

(2)如何保证网络服务质量

延迟低,丢包 RTX

延迟高 FEC

jitterBuffer 网络平滑,防止乱序

(3)网络带宽的评估

GCC-REMB

GCC-TransportCC

基于丢包的评估算法

基于延迟的评估算法

(4)减少网络上传输的内容

固定带宽减少内容:动态码流,simulcast,SVC,业务定制

多人互动架构方案

各媒体服务器架构模型

如何实现流媒体服务器

https://i-blog.csdnimg.cn/blog_migrate/bdd49df71ca49211125b5542f59f5ff8.png

枚举音视频设备

采集音视频数据

https://i-blog.csdnimg.cn/blog_migrate/bca404f1680ba19373fa807211c6da1e.png

信令系统的作用:

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

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

③交换双方的candidate数据

https://i-blog.csdnimg.cn/blog_migrate/2be4c96a5b25e105babfe2418edb01b4.png

socket.io

websocket/protoo

join加入房间

leave离开房间

message端到端消息

offer消息

answer消息

candidate消息

joined已加入房间

otherjoin其他用户加入房间

full房间人数已满

leaved已离开房间

bye对方离开房间

https://i-blog.csdnimg.cn/blog_migrate/696a15d1b9391e7cb914ed1fdd2ce461.png

NAT(network address translator)

STUN(simple traversal of UDP through NAT)

TURN(traversal using relays around NAT)

ICE(interactive connectivity establishment)

完全锥形NAT

地址限制锥形NAT

端口限制锥形NAT

对称性NAT

主机候选者

反射候选者

中继候选者

收集candidate

对candidate pair排序

连通性检查

https://i-blog.csdnimg.cn/blog_migrate/1fdd3cb58b9f379937d0415800a1c592.png

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

https://i-blog.csdnimg.cn/blog_migrate/5d10d535f8c03a9acfda2b12390cacab.png

(1)会话层

会话的名称与目的

会话的存活时间

会话中包括多个媒体信息

(2)媒体层

媒体格式

传输协议

传输IP与端口

媒体负载类型

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

(1)加入房间

https://i-blog.csdnimg.cn/blog_migrate/68ee32a4458f802b51d928edad43bef3.png

(2)离开房间

https://i-blog.csdnimg.cn/blog_migrate/3b8fd94e3a2d65287a6a38e919089cda.png

https://i-blog.csdnimg.cn/blog_migrate/c136dec097395e5b10a9e6aec283ad7f.png

mesh方案

MCU方案

SFU方案

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

multipoint conference unit

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

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

selective forwarding unit

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

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

mediasoup架构

medooz架构

janus架构

licode架构

https://i-blog.csdnimg.cn/blog_migrate/198dcf10c33237611679c4a184066dae.png