GB28181 国标协议
GB28181 是中国国家标准《安全防范视频监控联网系统信息传输、交换、控制技术要求》(GB/T 28181),广泛应用于视频监控系统的互联互通。Monibuca V6 提供完整的 GB28181 信令和媒体支持。
| 属性 | 值 |
|---|---|
| 信令协议 | SIP(UDP/TCP 可选) |
| 信令端口 | 5060(默认) |
| 媒体协议 | RTP over UDP |
| 媒体端口 | 10000-20000(默认范围) |
| 推流 | ✅ 支持(设备推流到平台) |
| 拉流 | ✅ 支持(平台向设备请求流) |
| 延迟 | 1-3 秒 |
| Feature Flag | gb28181 |
- 设备注册与管理:支持设备注册、心跳保活、目录查询
- 实时视频:支持设备实时视频预览
- 云台控制(PTZ):支持上下左右旋转、变焦、预置位等
- 通道管理:支持多通道设备,独立管理每个通道
- 平台级联:支持上下级平台对接
- 录像查询与回放:支持设备端录像检索和远程回放
- 录像下载:支持从设备下载历史录像
- WebSocket 通知:实时推送设备状态变化
Feature 启用
Section titled “Feature 启用”[features]gb28181 = ["dep:plugin-gb28181"]gb28181: enable: true sip: - domain: "3402000000" domain_id: "34020000002000000001" username: "34020000002000000001" password: "your_sip_password" digest_retry_limit: 2 digest_stale_retry_limit: 2 lan_ip: "192.168.1.100" wan_ip: "203.0.113.1" port: 5060 network: udp rtp_port_min: 10000 rtp_port_max: 20000 heartbeat_timeout: 60 register_timeout: 300 download_storage_path: "./downloads" download_retention_days: 7SIP 服务器配置
Section titled “SIP 服务器配置”| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
domain | string | "3402000000" | SIP 域名(行政区划编码) |
domain_id | string | "34020000002000000001" | SIP 域 ID(20 位编码) |
username | string? | null | Digest 认证用户名(可选) |
password | string? | null | Digest 认证密码(可选) |
digest_retry_limit | u8 | 2 | 普通 401 挑战最大重试次数 |
digest_stale_retry_limit | u8 | 2 | stale=true 挑战最大重试次数 |
lan_ip | string | "127.0.0.1" | SIP 内网 IP |
wan_ip | string | "127.0.0.1" | SIP 公网 IP(NAT 穿透用) |
port | u16 | 5060 | SIP 信令端口 |
network | string | "udp" | 网络协议(udp 或 tcp) |
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enable | bool | true | 是否启用插件 |
rtp_port_min | u16 | 10000 | RTP 媒体端口范围起始 |
rtp_port_max | u16 | 20000 | RTP 媒体端口范围结束 |
heartbeat_timeout | u64 | 60 | 心跳超时时间(秒) |
register_timeout | u64 | 300 | 注册超时时间(秒) |
download_storage_path | string | "./downloads" | 录像下载存储路径 |
download_retention_days | i64 | 7 | 下载文件保留天数 |
设备编码规则
Section titled “设备编码规则”GB28181 设备 ID 遵循 20 位编码规则:
中心编码(8位) + 行业编码(2位) + 类型编码(3位) + 序号(7位)例如:34020000001320000001
34020000:行政区划编码(安徽省)00:行业编码132:类型编码(IPC 摄像机)0000001:序号
设备注册流程
Section titled “设备注册流程”设备 Monibuca (SIP Server) | | | -------- REGISTER ----------> | | <------- 401 Unauthorized --- | | -------- REGISTER (Auth) ---> | | <------- 200 OK ----------- | | | | -------- 心跳(MESSAGE) -----> | | <------- 200 OK ----------- | | |设备配置示例
Section titled “设备配置示例”在摄像头或 NVR 的国标配置页面,填写以下信息:
| 参数 | 值 | 说明 |
|---|---|---|
| SIP 服务器 ID | 34020000002000000001 | 对应配置中的 domain_id |
| SIP 服务器域 | 3402000000 | 对应配置中的 domain |
| SIP 服务器地址 | 192.168.1.100 | Monibuca 服务器 IP |
| SIP 服务器端口 | 5060 | 对应配置中的 port |
| 设备编号 | 34020000001320000001 | 设备自身的 20 位编码 |
| 传输协议 | UDP | 对应配置中的 network |
云台控制(PTZ)
Section titled “云台控制(PTZ)”支持的 PTZ 操作:
| 操作 | 说明 |
|---|---|
| 方向控制 | 上、下、左、右、左上、左下、右上、右下 |
| 变焦控制 | 放大、缩小 |
| 光圈控制 | 打开、关闭 |
| 预置位 | 设置、调用、删除预置位 |
PTZ 控制通过 HTTP API 调用,详见 GB28181 API 文档。
GB28181 设备可以有多个通道(如 NVR 下挂多个摄像头)。Monibuca 支持:
- 自动发现设备通道(通过 Catalog 查询)
- 对每个通道独立发起实时预览
- 对每个通道独立进行 PTZ 控制
- 通道状态实时更新
Monibuca 可以作为下级平台,向上级平台注册并推送流数据:
下级设备 → Monibuca (下级平台) → 上级平台级联功能支持:
- 向上级平台注册
- 响应上级平台的目录查询
- 按需向上级平台推送实时流
- 同步设备状态变化
录像查询与回放
Section titled “录像查询与回放”查询设备端录像
Section titled “查询设备端录像”通过 GB28181 信令查询设备端的历史录像列表,支持按时间范围和录像类型过滤。
支持从设备端拉取历史录像进行回放,支持:
- 正常播放
- 快进 / 慢放
- 定位(Seek)
- 暂停 / 恢复
支持将设备端的历史录像下载到本地存储,下载完成后自动保存到配置的存储路径。
WebSocket 通知
Section titled “WebSocket 通知”GB28181 插件提供 WebSocket 接口,实时推送设备事件:
const ws = new WebSocket('ws://localhost:8080/gb28181/ws');ws.onmessage = (event) => { const data = JSON.parse(event.data); console.log('GB28181 事件:', data);};事件类型包括:设备上线、设备离线、通道更新、报警通知等。
GB28181 设备推送的流可以通过其他协议播放:
# 通过 HTTP-FLV 播放设备流ffplay http://localhost:8080/flv/gb28181/34020000001320000001.flv
# 通过 HLS 播放ffplay http://localhost:8080/hls/gb28181/34020000001320000001/index.m3u8
# 通过 RTMP 播放ffplay rtmp://localhost:1935/gb28181/34020000001320000001部署 GB28181 服务需要开放以下端口:
# SIP 信令端口sudo ufw allow 5060/udp
# RTP 媒体端口范围sudo ufw allow 10000:20000/udp联系我们
微信公众号:不卡科技
腾讯频道:流媒体技术
QQ 频道:p0qq0crz08
QQ 群:751639168