首页 / Go 平台(cloud-go) / 视频与推送:videosvr + wssvr

videosvr 视频业务

视频业务服务(gRPC video.proto),基于 ZLMediaKit / Pion WebRTC 提供实时监控、历史录像与云台控制:

能力接口/实现说明
实时监控StartLive(deviceID, channel, streamType)校验设备权限 → 构造 WebRTC 服务地址 → 向设备发送 SIP INVITE;返回 webrtc:// / wss:// 播放地址
历史录像QueryRecordings联动 OSS 检索历史录像文件,生成临时访问 URL
云台控制PtzControl远程转向、缩放(PTZ)
流媒体go-share clients/zlmediaHttpZLMediaKit API:抓拍、流管理
音视频全程走 Go 数据面,不占用 Java 服务 IO;播放地址使用短效临时凭证保证隐私。
产品模式区别:本页描述云录像/平台媒体服务能力。对于“录像仅保留在车载 microSD、平台不接收视频内容”的独立设备模式,参见车载独立监控与本地媒体架构;该模式中 Go 服务只参与控制、授权、信令和审计,不能承接媒体内容或历史录像文件。

wssvr 实时位置网关

实时位置 WebSocket 网关,为 App 提供设备位置实时推送:

目录职责
internal/route/ingressWebSocket 入口接入(路由)
internal/route/manager连接管理(NATS ACL、wildcard 订阅管理)
internal/integration外部集成:coreNats、tdengine(位置数据)、websocket 测试
internal/snapshot / model / protocol位置快照、数据模型与协议
internal/metrics连接与消息指标
安全默认:WebSocket Upgrade 由 Java Authorizer 统一完成身份与设备权限校验;鉴权或关键实时依赖不可用时 fail-closed(拒绝连接而不是放行)。

实时视频链路

  1. App 调用 Java 业务接口发起拉流请求,获取访问权限与短效 Token
  2. Java 校验权限与订阅权益,返回 Go videosvr 的 WebRTC 直连地址
  3. App 与 videosvr 建立 WebRTC 通道;videosvr 向设备发送 SIP INVITE 唤醒推流
  4. 视频流经 ZLMediaKit 转发;历史录像从 OSS 生成临时 URL 播放

排查要点

  • 拉流失败:先确认 Java 侧权限/权益校验,再查 videosvr 权限校验、设备在线与 SIP INVITE 是否发出。
  • 播放卡顿/黑屏:查 ZLMediaKit 流状态、码流类型(主/辅)与网络链路。
  • 实时位置不更新:查 wssvr 连接状态、NATS 位置数据流与 Java Authorizer 鉴权结果。