RTCPilot的信令流程

大家好,今天介绍:RTCPilot的信令流程

RTC Pilot是一个基于C++17开发的WebRTC SFU开源,支持跨平台,支持windows,linux,macos,二次开发效率高;并且是开源中唯一全面支持WebRTC级联的开源服务。

这个系列的内容。

•如何部署和使用一个简单的视频会议

•如何部署一个分布式多服务级联的视频会议

•介绍RTCPilot的信令流程

•介绍RTCPilot级联的信令流程

•RTCPilot实现会议实时语音转文字(RTCPilotMCU)

上一期我们介绍RTC pilot如何搭建一个RTC集群,提供分布式的视频会议系统。

今天我们介绍RTC pilot的信令流程,方便开发者做二次开发。

视频地址:

如何配置RTC集群

信令基于websocket,信令类型有两类:

•Request消息

有发送和返回消息Response,消息是双向的

•Notify消息

仅发送,没有回复消息,消息是单向的

信令流程如图,有三个角色:两个客户端client A和client B;一个RTC pilot SFU,也就是WebRTC服务端。

信令流程如下:

1.Join Request: client A在web socket连接成功后,发送join request消息。因为房间内没有其他用户,返回用户信息为空

2.Push Request: client A在join后,发送push request消息,将自己的WebRTC peer connection的SDP发送给SFU;SFU收到后,通过response消息返回自己支持的SDP信息。Client A收到后,就可以开始建立WebRTC通道和开始推流

3.client B开始web socket连接SFU,并发送join request消息,因为房间里面已经有了client A,client B将收到带有client A用户信息和流信息的response消息。

4.SFU收到client B的join消息后,会向整个房间广播client B的用户信息,这里会向client A发送new User notify消息

5.Client B因为通过join的response得到Client A的推流信息,所以发送pull request消息,进行拉流

6.Client B拉流成功后,同样可以进行推流,发送push request开始推流;

7.SFU收到Client B的push request后,将其流信息在房间内广播,这里向client A发送new pusher notify消息

8.Client A收到new pusher notify消息后,得到client B的流信息,就可以发送pull request进行拉流操作。

信令具体的json内容:

具体的信令json内容,在开源markdown文档中。websocket信令设计文档地址:

复制代码
https://github.com/runner365/RTCPilot/blob/master/ws_design.md

国内镜像

复制代码
https://gitee.com/xiaoq_bj/rtcpilot/blob/master/ws_design.md

关注音视频小话,关注抖音号,视频号,带来更多音视频技术

相关推荐
SendTomo2 天前
send.wang私传网:P2P直连传大文件首选工具
javascript·网络·网络协议·webrtc·p2p
大辉狼_音频架构2 天前
第 02 篇:时域的语言 —— 卷积、LTI 系统与冲激响应
算法·音视频开发
大辉狼_音频架构3 天前
第 01 篇:音频采样与量化 —— 从 I2S 帧到奈奎斯特定理
嵌入式·音视频开发
桑榆4163 天前
WebRTC 本地视频文件推流 Demo 搭建指南 (Ubuntu 24.04)
linux·ubuntu·webrtc
qingmiaozhuan5 天前
区域录屏窗口位移录制框固定?GDI+win32gui动态坐标追踪4种代码方案
音视频开发·录屏工具·录屏技术·电脑录屏
音视频牛哥7 天前
WebRTC 能解决低延迟直播吗?为什么 RTSP、RTMP、GB28181 仍然不可替代?
音视频·webrtc·低延迟rtsp播放器·音视频sdk·smartmediakit·低延迟rtmp播放器·低延迟音视频
KnowFun7 天前
互动视频的前端实现:有向图建模、分支预加载与尾帧管线
音视频开发
大辉狼_音频架构13 天前
AudioReach Plugin 机制问题解答
嵌入式·音视频开发
大辉狼_音频架构13 天前
AudioReach:Tinyalsa PCM Plugin 机制
嵌入式·音视频开发
老孙讲技术13 天前
凌晨三点报警全乱了:一个 callback 地址,如何把设备托管消息拆成多客户流水线?
物联网·音视频开发