gbhub 网关截图:所有设备统一出图

Viewed 7

gbhub 网关截图:所有设备统一出图

版本:v2026.09 | 适用范围:gbhub 视频监控平台


一、核心机制

gbhub 不把截图命令透传给设备,而是自己从 ZLM 统一出图。

上级发 CaptureCmd → gbhub 收到 → gbhub 从本地 ZLM 抓帧 → 上传 → 回调上级

不管下级设备是什么型号、什么协议、什么能力,gbhub 都用同一种方式生成图片。


二、为什么要统一

2.1 设备差异是运维灾难

设备 如果各自实现 结果
2022 新 IPC 支持 CaptureCmd,自己上传 一套流程
2016 老 IPC 只支持 Snapshot,图回传 sip 另一套流程
不支持截图的 NVR 只能推流 又一套流程
第三方设备 私有协议 再一套流程

上级要为每一种设备适配,代码和配置失控。

2.2 gbhub 的做法:抹平差异

gbhub 不看设备,只看 ZLM。

步骤 由谁做
设备推流给 ZLM 设备(所有设备都会推流)
从 ZLM 抓帧 gbhub(统一)
上传图片 gbhub(统一)
上报索引 gbhub(统一)

设备只需要会推流——这是所有监控设备的基本能力。


三、统一出图流程

上级发 CaptureCmd
↓
gbhub 收到,不转发
↓
gbhub 确认 ZLM 有流(无流则内网触发拉流)
↓
gbhub 从 ZLM 抓一帧(127.0.0.1,本地)
↓
gbhub 上传图片(OSS / 上级服务器)
↓
gbhub 回调上级索引

全程 gbhub 主导,设备只负责推流。


四、核心优势

4.1 设备零适配

维度 传统透传 gbhub 统一
设备要求 支持 CaptureCmd / Snapshot 只要能推流
上级配置 每设备一套 一套
新设备接入 要适配协议 直接推流即可
老设备支持 不支持就无解 一样能截图

4.2 上级公网消耗恒定

不管什么设备,上级收到的都是:

  • 一张图 250 KB
  • 一个索引回调(几十字节)

从 7.5 MB(拉 30 秒流)降到 250 KB,节省 30 倍。

4.3 图片格式统一

  • 分辨率统一(ZLM 输出一致)
  • 压缩格式统一(JPEG)
  • 命名规则统一
  • 上传路径统一

上级拿到的图完全一致,不用处理各种设备差异。

4.4 索引统一

  • 所有设备的截图进同一个 ZSet 索引
  • 上级查询历史用同一套 API
  • 分页、删除、清理全部统一

4.5 排查简单

  • 图从哪来?gbhub 的 ZLM 抓帧
  • 为什么失败?看 gbhub 日志
  • 不用追设备端的实现

所有问题都在 gbhub 侧,可控。


五、和其他方案对比

维度 设备自己截 gbhub 统一
设备要求 支持 2022 标准 只要能推流
老设备兼容 ❌ ✅
第三方设备 需私有适配 ✅ 通用
图片格式 五花八门 统一
上传方式 每设备一套 统一
上级配置 每设备配 一套
故障排查 分散在各设备 集中在 gbhub
公网消耗 看设备实现 恒定 250 KB

六、适用场景

场景 gbhub 统一出图的价值
多品牌设备混用 不需要分别适配
新老设备并存 老的也能截图
大量第三方接入 只要推流就行
上级要求统一格式 天然统一
运维人力有限 只维护 gbhub

七、核心价值总结

维度 收益
设备兼容 只要能推流,就能截图
上级透明 一套配置,不感知设备差异
公网节省 恒定 250 KB / 次,节省 30 倍
格式统一 分辨率 / 压缩 / 命名 / 路径全一致
索引统一 所有设备进同一历史库
排查简单 问题都在 gbhub 侧

八、一句话总结

不管什么设备,只要会推流,gbhub 就能出图——上级永远只收到统一的 250 KB 图片。


gbhub 团队 | https://gb.automate.org.cn

0 Answers