如何使用RTCPilot配置一个集群RTC服务

大家好,今天介绍:如何配置和使用RTC集群

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

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

支持WebRTC级联其实是硬需求。主要原因有:

1.单个RTC服务进程性能有一定的限制,一旦接入用户们的RTC推流个数和拉流个数大于阈值,系统无法扩展。

2.RTC就近接入的需求,如果需要在全国部署,需要在就近的城市部署,在接入的时候,根据用户的IP地址就近接入。比如在北京,上海,广州建立服务节点,就需要这几个城市的RTC服务进行级联。

3.跨国RTC通信的需要,跨国的RTC因为延时大的特点,需要建立一些节点和专线提供低延时的转发,所以就有了级联的需求。

支持WebRTC级联的RTC Pilot结构图有这几部分:

1.Pilot Center: 接受来自RTC pilot SFU的web socket注册后,同步房间和用户信息,且同步RTC流信息;

2.RTC Pilot SFU:上个视频介绍过如何配置和使用,接受客户端的接入,并转发房间,用户和流信息给Pilot Center;并且转发音频和视频流在不同的SFU之间。

3.Web client前端:用vue3开发,信令通过web socket接入RTC pilot SFU,WebRTC媒体接入SFU。

如图,client 1和client 2接入SFU 1,client 3接入SFU 2,房间和用户加上RTC流的信息通过Pilot center在SFU之间传递,共享流信息后,视频和音频通过RTP直接在RTC Pilot SFU之间传递。

RTC Pilot级联代码:

复制代码
1.Pilot Center(Python):  在RTCPilot代码中pilot_center目录下Github:https://github.com/runner365/RTCPilot/tree/master/pilot_center国内:https://gitee.com/xiaoq_bj/rtcpilot/tree/master/pilot_center
2.RTC Pilot SFU(C++17): Github:https://github.com/runner365/RTCPilot国内:https://gitee.com/xiaoq_bj/rtcpilot
3.Web client(VUE3): Github:https://github.com/runner365/webrtc_js_client国内:https://gitee.com/xiaoq_bj/webrtc_js_client

这次级联配置例子,我们启动两个SFU进程,在同一台设备上,也就是本机。SFU 1的WebSocket信令接入端口为7443,而SFU 2的端口号为7543,两者区分开;

SFU 1的WebRTC的candidate端口号为5000和6000,而SFU 2的WebRTC candidate端口号是5001和6001,两者通过端口号区分开。

级联的媒体RTP传输的端口号范围,SFU 1为10000到19999,SFU 2为20000到29999,在同一台设备UDP范围区分开。

具体如何配置,请观看音视频小话的视频号内容:

如何配置RTC集群

相关推荐
中视会议1 天前
实时音视频 + 多智能体,打造新一代 AI 互动课堂系统
实时音视频·在线课堂·企业培训·多模态生成·实时互动教育
勤劳X码农2 天前
2026年TTS工具技术测评:7款方案实测,从免费额度到API集成全解析
人工智能·音视频·实时音视频
代码小学僧2 天前
从 0 到 1,记录我的第一个出海 SaaS 独立开发项目
前端·rpc·音视频开发
程序员老陆3 天前
WHIP 与 WHEP:WebRTC 直播的标准化入口与出口
ffmpeg·音视频·webrtc·whip·whep
superxxd3 天前
基于rust的多平台原生GIS引擎
人工智能·物联网·实时音视频
贾伟康3 天前
【HarmonyOS 7新能力|041】弱网直播优化工程封装:把接入逻辑放进可维护的分层结构
性能优化·harmonyos·arkts·音视频开发·直播
hz567894 天前
手术室视频示教系统解决方案:让临床教学突破空间限制
安全·音视频·实时音视频·信息与通信·智能硬件
可乐鸡翅yeah_4 天前
M3U8 测试用例库建设,流媒体团队测试资产沉淀与回归体系搭建
音视频·实时音视频·m3u8·m3u8在线播放·音视频在线播放
用户38034165882975 天前
Broadcast Extension 里的 Live Activity:一次跨进程妥协
ios·音视频开发
用户38034165882976 天前
macOS 录屏:ScreenCaptureKit 与 iOS 的分野,共用引擎的抽象层该切在哪
ios·音视频开发