GBHub 视频平台
高性能 GB28181 视频接入与级联平台 · Rust 构建 · 单机 10 万设备
一、产品概述
GBHub 是面向安防监控、智慧城市、边缘计算场景的一站式 GB28181 视频平台。基于 Rust + Tokio 异步运行时构建,提供 SIP 信令接入、ZLMediaKit 流媒体调度、级联上下级、GB35114 加密认证等完整能力。
核心理念:用入门级硬件跑出服务器级性能。
二、核心优势
🚀 极致性能
| 指标 | GBHub | 行业平均 |
|---|---|---|
| 单机稳定承载 | 100,000+ 设备 | 10,000~30,000 |
| 单机 5 万并发注册 | 58 秒完成(100% 成功) | 60~120 秒 / 90~98% |
| Keepalive 处理延迟 | < 5ms | 20~50ms |
| on_play 鉴权延迟 | < 1ms | 5~20ms |
| 内存占用 | 恒定(无泄漏) | 缓慢增长 |
实测:Intel Celeron N5105(10W)单机模拟 5 万设备并发注册,成功率 100%,耗时 58 秒。
📌 说明:设备注册是分散发生的(设备陆续上电、陆续注册),心跳也是分散的(60 秒一次)。所谓"单机 10 万设备"指的是稳态在线设备总数,不是 10 万设备同时注册。真实场景中,10 万设备可能在几分钟内陆续完成注册。
💻 全平台支持
| 平台 | 支持 |
|---|---|
| Linux(x86_64 / aarch64) | ✅ 生产推荐 |
| macOS(Intel / Apple Silicon) | ✅ 开发 / 小型部署 |
| Windows(x86_64) | ✅ 开发 / 小型部署 |
同一份代码,跨平台编译——socket 操作统一用 socket2 封装,无需条件编译。
💡 高能效比
同样的 10 万设备承载量:
| 方案 | CPU | 功耗 | 成本 |
|---|---|---|---|
| GBHub | N5105 | 10W | ~700 元 |
| 传统 C 方案 | Xeon E3 | 65W | ~20,000 元 |
| Java 方案 | Xeon E5 | 120W | ~80,000 元 |
能效比提升 100 倍以上。
🛡️ 稳定可靠
- 瞬间 5 万冲击不崩:所有设备最终 100% 成功
- Valkey 抖动优雅降级:不 panic、不崩溃
- 内存恒定:长时间运行无泄漏
- 完整重试机制:网络抖动自动恢复
🔐 GB35114 加密认证
原生支持 GB35114 A 级信令加密,包括:
- 双向证书认证
- VKEK 密钥分发
- Note 签名验证
- 数字摘要防篡改
三、功能矩阵
设备接入
- GB28181-2016 / GB28181-2022 协议
- UDP / TCP 双传输
- Digest 摘要认证
- 自动注册与心跳维护
- 目录查询(Catalog)分页处理
- 设备控制(PTZ)
- 录像查询与回放
- 抓拍与快照
- 报警上报
- 预置位查询
流媒体调度
- 集成 ZLMediaKit 多节点
- 按通道负载均衡
- 按需拉流(On-Demand)
- 支持 RTSP / RTMP / HLS / HTTP-FLV / WebRTC 输出
- 录像存储与回放
- 语音广播 / 对讲
级联管理
- 向上级联(上级平台接入)
- 向下级联(下级平台接管)
- 级联心跳与重连
- 目录推送
- 状态同步
高可用
- Valkey 缓存加速
- GreptimeDB 时序存储(录像、告警)
- 多实例横向扩展
- 断线自动重连
- 进程优雅关闭
四、技术架构
设备侧(IP Camera / NVR / 编码器,GB28181 协议)
│ UDP/TCP SIP 信令
▼
GBHub SIP 服务
├── 注册管理
├── 目录服务
├── 流媒体调度
├── 级联管理
└── 本地缓存 / 防抖 / 限流 / 批处理 pipeline
│
├──► Valkey(设备状态 / 缓存 / 通道配置 / 全部热数据)
├──► GreptimeDB(录像索引 / 告警信息,时序存储)
│
▼
ZLMediaKit 集群(RTSP / RTMP / HLS / FLV / WebRTC 输出)
数据存储分工
| 存储 | 用途 |
|---|---|
| Valkey | 设备注册信息、通道配置、ZLM 节点状态、播放/推流 token、流代理配置、活跃流跟踪等全部热数据 |
| GreptimeDB | 录像文件索引、设备告警信息(时序写入,供历史查询与聚合分析) |
五、性能优化成果
GBHub 经历了深度性能优化,从 18% 成功率提升到 100%。
优化演进
| 阶段 | 优化内容 | 5 万并发成功率 |
|---|---|---|
| 初始 | 原始实现 | 18% |
| ① | HMAC nonce(省 15 万次 Valkey 操作) | 33% |
| ② | 密码预热(省 5 万次 HGET) | 33% |
| ③ | 本地限流(省 5 万次 Lua) | 35% |
| ④ | REGISTER 批处理 pipeline | 64% |
| ⑤ | UDP 发送缓冲 16MB | 74% |
| ⑥ | 内核 wmem_max 64MB | 88.88% |
| ⑦ | 完整内核参数调优 | 100% |
最终成果:成功率提升 5.5 倍,Valkey QPS 降低 80%。
核心技术
| 技术 | 效果 |
|---|---|
| HMAC nonce | 0 Valkey 操作生成/验证 nonce |
| 密码预热 | 启动时批量加载,注册时 0 HGET |
| 本地限流 | 单实例下 0 Valkey 操作 |
| 批处理 pipeline | 5 万次 → 100 次 Valkey 往返 |
| 连接池复用 | HTTP keep-alive + 连接池 |
| 短借用 | 单请求最大连接数从 2 降到 1 |
| socket2 跨平台 | Linux / macOS / Windows 通用 |
六、部署要求
推荐配置(按稳态在线设备总数)
说明:这里的"设备数"指稳态在线总数(心跳分散在 60 秒内)。不是"瞬时并发注册数"。
实际压测中,N5105 单机模拟 5 万设备并发注册成功(58 秒完成),说明其瞬态抗压能力更强。
| 规模 | 稳态设备数 | CPU | 内存 | 带宽 |
|---|---|---|---|---|
| 小型 | < 20,000 | 2 核 | 2 GB | 100 Mbps |
| 中型 | 20,000 ~ 50,000 | 4 核 N5105 | 4 GB | 200 Mbps |
| 大型 | 50,000 ~ 100,000 | 4 核 i3-N305 | 8 GB | 500 Mbps |
| 超大型 | > 100,000 | 横向扩展 | — | 1 Gbps |
关键说明:
- 日常稳态运行(设备陆续心跳)→ CPU 占用低,单机可承载更多设备
- 设备批量重启/上电(瞬时集中注册)→ CPU 短时打满,需要留余量
- 5 万设备同时注册是极限压测,不是生产常态
平台支持
| 平台 | 架构 | 状态 |
|---|---|---|
| Linux | x86_64 | ✅ 生产推荐 |
| Linux | aarch64 | ✅ 生产可用 |
| macOS | Apple Silicon (M1/M2/M3) | ✅ 开发 / 小型部署 |
| macOS | Intel | ✅ 开发 / 小型部署 |
| Windows | x86_64 | ✅ 开发 / 小型部署 |
依赖组件
- Valkey 7.0+(Redis 兼容)
- GreptimeDB 最新版
- ZLMediaKit 最新版
部署方式
Docker 一键部署(推荐):
docker-compose up -d
手动编译部署(全平台通用):
# Linux / macOS
cargo build --release
./target/release/gbhub-sip
# Windows
cargo build --release
.\target\release\gbhub-sip.exe
macOS 安装依赖:
brew install valkey
brew install greptimedb
brew install zlmediakit
七、应用场景
🏙️ 智慧城市
- 万级摄像头统一接入
- 跨部门视频共享
- 多级级联架构
- 边缘节点轻量部署
🏭 智慧工厂
- 生产线视频监控
- AI 报警联动
- 边缘计算(N5105 迷你主机)
- 低功耗 7×24 运行
🏢 楼宇安防
- 中小规模设备接入
- 本地化部署
- 数据不出内网
- 完整 GB35114 加密
☁️ 云视频服务
- 多租户 SaaS 架构
- 横向弹性扩展
- 高并发接入
- 视频流转发分发
💻 开发者友好
- macOS / Windows 本地开发
- 与生产环境一致的代码
- 无需虚拟机
八、对比竞品
| 特性 | GBHub | 传统 C 方案 | Java 方案 |
|---|---|---|---|
| 单机承载 | 100,000 | 30,000 | 50,000 |
| CPU | N5105(10W) | Xeon E3(65W) | Xeon E5(120W) |
| 单机成本 | ~700 元 | ~20,000 元 | ~80,000 元 |
| 每万设备成本 | ~70 元 | ~6,600 元 | ~16,000 元 |
| 内存占用 | 恒定 | 增长 | 增长 |
| 启动速度 | < 1 秒 | 5~10 秒 | 10~30 秒 |
| GB35114 | 原生 | 插件 | 插件 |
| 跨平台 | Linux/macOS/Win | Linux | 全平台 |
| 内存安全 | Rust | C 内存泄漏 | JVM |
九、客户案例
某省级安防平台
- 规模:12 万路摄像头
- 架构:2 台 N5105 + Valkey 集群 + GreptimeDB
- 功耗:总 20W(vs 传统方案 5,000W)
- 硬件投入:~1,500 元(vs 传统方案 ~35,000 元)
- 效果:稳定运行 18 个月,零故障
某工业园区
- 规模:5,000 路摄像头
- 架构:单台 N5105 迷你主机
- 功耗:10W
- 硬件投入:~700 元
- 效果:CPU 占用 < 20%,轻松承载
某独立开发者
- 规模:200 路摄像头(测试环境)
- 架构:MacBook Air M1
- 功耗:~5W
- 硬件投入:0 元(已有设备)
- 效果:本地开发调试,无缝迁移到 Linux 生产
十、联系方式
- 🌐 官网:https://gb.automate.org.cn
GBHub — 让 GB28181 接入变得更简单、更快、更省。