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

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

相关推荐
木易士心1 天前
深度解析 Android 音频焦点处理与实战开发
音视频开发
字节跳动视频云技术团队5 天前
豆包视频通话背后,火山引擎重构 Agent 时代多模态传输底座
人工智能·agent·音视频开发
大辉狼_音频架构5 天前
Vol.05 VendorHAL-NXP
嵌入式·音视频开发
EasyGBS6 天前
RTSP、RTMP、HLS、FLV、WebRTC……国标GB28181视频平台EasyGBS五大流媒体协议,你的场景该用哪个?
音视频·webrtc
字节跳动视频云技术团队6 天前
不止于 4K,火山引擎画质增强让视频从清晰走向细腻
人工智能·音视频开发
REDcker7 天前
libdatachannel 快速入门
c++·webrtc·datachannel
字节跳动视频云技术团队8 天前
火山引擎 × 央视网 打造 2026 世界杯沉浸式观赛盛宴
人工智能·音视频开发
码流怪侠8 天前
StreamingBench:首个流式视频理解基准——多模态大模型离人类实时感知还有多远?
llm·github·音视频开发
冯程10 天前
WebRTC 之 AllocationSequence 详解
webrtc·音视频开发
字节跳动视频云技术团队12 天前
Agent 进化论:从对话到协作
人工智能·agent·音视频开发