三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

WVP-GB28181-Pro 从零到一完整教程:3小时搭好免费开源的国标视频监控平台

WVP-GB28181-Pro 从零到一完整教程:3小时搭好免费开源的国标视频监控平台

WVP-GB28181-Pro 从零到一完整教程:3小时搭好免费开源的国标视频监控平台

【免费下载链接】wvp-GB28181-pro基于GB28181-2016、部标808、部标1078标准实现的开箱即用的网络视频平台。自带管理页面,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将普通摄像机/直播流/直播推流转国标共享到国标平台。项目地址: https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro

仓库里堆着海康、大华、宇视三种摄像头的 NVR,每次想看画面都要打开三个不同的客户端,跨品牌录像互不关联,更别提把视频共享给上级监管平台——你是否也在为这种"监控管理碎片化"而头疼?WVP-GB28181-Pro 正是为解决这一痛点而生的免费开源国标视频监控平台:它基于 GB/T 28181-2016 国家标准,自带完整 Web 管理界面,开箱即可统一接入多品牌 IPC/NVR,支持实时预览、云端录像、国标级联与 NAT 穿透。无论你是安防集成商、运维工程师,还是准备自建监控系统的开发者,这篇教程都能带你从零开始,一步步把它跑起来并用到生产环境。

一、先搞懂一件事:为什么视频监控需要一个"国标平台"

在开箱之前,我们先用 3 分钟建立一个必要认知。

所谓 GB/T 28181,是中国公共安全视频监控联网系统的国家标准。它规定了摄像头、NVR、平台之间如何"互相认识"(信令)、如何"传输视频"(媒体),相当于给安防设备统一了一套"普通话"。而传统方案里,海康用自己的 SDK、大华用自己的协议,各说各话,这就像办公室里的方言大杂烩:

能力维度没有国标平台的"方言时代"有了 WVP 的"普通话时代"
设备接入每个品牌一套客户端,多品牌就要装多个软件一个 Web 界面统一接入海康/大华/宇视等
协议标准私有 SDK,封闭生态,越用越绑死遵循国标,开放互联,随时可替换
系统扩展加一路摄像头就要重新配置一轮设备自动注册,扩容只看服务器性能
对外共享想对接监管平台?重新对接厂商接口国标级联,一键把通道共享给上级平台
二次开发依赖厂商 SDK 授权,成本高全开源,Java 后端 + Vue 前端随你改

WVP-GB28181-Pro 在架构上把"信令"和"媒体"拆成两层:平台本身(本项目)负责 SIP 信令与设备管理,视频流的接收与分发交给配套的 ZLMediaKit 流媒体服务。这样的好处是,信令服务和媒体服务可以分开部署,甚至各自组建集群,从而支撑大并发场景。

📌 一句话记忆:WVP 管"谁在、在哪、怎么连",ZLMediaKit 管"视频流怎么进、怎么出"。

二、从零到一上手指南:15 分钟跑通第一个监控画面

概念不用背,跑起来才是真的。这一节我们不追求全面,只求最快看到一个摄像头画面

第 1 步:准备运行环境

  • JDK 8 或更高版本
  • MySQL 5.7+/8.0(也支持 PostgreSQL、金仓)
  • 一台可以运行 ZLMediaKit 的服务器(Linux 优先)

硬件门槛并不高:单机演示环境 4 核 8GB 内存即可;生产环境按路数升级,后面第五节会给参考配置。

第 2 步:获取项目代码

git clone https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro cd wvp-GB28181-pro

项目源码结构值得先扫一眼,方便后续深入:

  • src/main/java/—— 平台核心业务逻辑(信令、设备管理、级联等)
  • web/src/—— 前端管理界面(Vue 项目,可独立二次开发)
  • 数据库/—— 按版本分目录的初始化与升级 SQL
  • doc/—— 官方使用文档(部署、配置、常见问题都在这里)

第 3 步:初始化数据库

按你的版本选脚本(这里以 2.7.4 为例):

CREATE DATABASE wvp CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE wvp; SOURCE 数据库/2.7.4/初始化-mysql-2.7.4.sql;

第 4 步:修改配置文件

核心配置集中在src/main/resources/application.yml(或 docker 目录下的application-docker.yml),新手只需关注两处:

# 数据库连接 spring: datasource: url: jdbc:mysql://localhost:3306/wvp username: root password: your_password # SIP 国标信令参数(设备注册靠它) sip: ip: 192.168.1.100 # 改成你的服务器 IP port: 5060 # 国标信令端口 domain: 3402000000 # 平台域编号

第 5 步:启动媒体服务与平台

# 先启动 ZLMediaKit(流媒体服务) cd zlmediakit && ./start.sh # 按官方文档编译后启动 # 再编译并启动 WVP 平台 mvn clean package -Dmaven.test.skip=true java -jar target/wvp-pro-*.jar

浏览器访问http://localhost:8080,用默认账号admin/admin登录(登录后第一件事就是改密码)。登录成功后会进入数据总览的控制台页面:

到这里,平台本体已经跑起来了。接下来就是把摄像头"叫"进来。

三、一台摄像机的完整接入之旅:从设备侧到平台侧

很多新手卡在这一步:平台和摄像头明明都能上网,为什么就是注册不上?原因在于GB28181 是双向配置——平台要告诉摄像头"来我这注册",摄像头也要配置"我要去注册的服务器是谁"。

3.1 在平台侧准备好接入参数

平台侧需要确认的信息包括:SIP 服务器编号(即平台域编号)、SIP 服务器 IP、端口(默认 5060),以及为设备分配的国标编号(20 位数字,如34020000001320000001)。

3.2 在设备侧填写国标参数

以某品牌 NVR 为例,进入"网络设置 → 平台接入 → 国标 28181",把平台参数一一填进去:

设备侧的关键字段与平台侧的对应关系:

设备侧字段填写内容说明
SIP 服务器 IP平台服务器 IP与 application.yml 中sip.ip一致
SIP 服务器端口5060sip.port一致
SIP 服务器编号平台域编号3402000000
设备编号20 位国标编码平台中"手动添加设备"时填的编号
注册密码平台为该设备设置的密码两者必须一致

配置完成后保存,设备会主动向平台发起注册。回到 WVP 的国标设备页面,你就能看到设备出现在列表中:

看到设备状态为"在线",恭喜,第一台设备接入成功。此时去分屏监控页点开通道,就能看到实时画面了:

✅ 接入成功的标志:设备列表出现该设备且状态为"在线",分屏页面能拉到画面。若设备迟迟不上线,跳去第六节避坑手册对号入座。

四、核心能力逐项拆解:这些功能真正值回票价

设备接进来只是开始,WVP 真正耐用的是下面这批开箱即用的能力,每项都对应源码里的一个模块,学完可以按图索骥去读源码。

4.1 无插件实时预览,H.264/H.265 通吃

无需安装任何插件,浏览器直接出画面,支持 1/4/9/16 多分屏、主码流与子码流切换、云台 PTZ 控制与预置位。背后是 jessibuca 和 h265web.js 两个开源播放器在支撑,H.265 编码在普通浏览器里也能流畅解码。

4.2 三套录像体系,各有各的用武之地

录像类型存在哪适用场景平台管理入口
设备录像摄像头/NVR 本地 SD 卡或硬盘利旧已有存储,随时回查通道"录像"标签
云端录像平台服务器磁盘关键点位集中留存,统一管理"云录像"模块
录制计划平台调度按时间段批量开录,节省空间"录制计划"模块

以云录像为例,列表页支持按关键词、起止时间、节点筛选,录像文件可在线播放、下载、删除:

4.3 报警、位置与对讲:让平台"活"起来

平台实现了 GB28181 的订阅与通知机制:设备报警事件可实时推送到前端弹窗,移动位置订阅能在地图上实时标定设备轨迹,语音对讲支持双向通话。这几项在源码中分别对应src/main/java/com/genersoft/iot/vmp/gb28181/event/下的事件处理器,想扩展报警联动(比如报警自动抓拍、推送企业微信),从这里入手最快。

4.4 老设备也不浪费:RTSP/RTMP 拉流与推流

不带国标功能的旧摄像机怎么办?平台支持拉流接入(主动去拉 RTSP/RTMP 地址)和推流接入(设备/编码器主动推流过来),拉进来之后统一转成标准流格式对外分发,甚至还能再转成国标协议共享出去。这让"纯国标平台"瞬间变成"杂食平台",充分利旧。

五、国标级联进阶玩法:把多个平台织成一张网

单平台是孤岛,级联才能成网。国标级联允许 WVP 作为下级平台,把本地通道共享给一个或多个上级监管平台——这也是对接公安/综治监管平台时最常用的功能。

配置流程只需三步:

  1. 添加上级平台:在"国标级联"页点"添加",填入上级平台的 SIP 国标码、域名、IP、端口与认证信息:

  1. 选择共享通道:为每个上级平台独立勾选要共享的通道,还支持自定义通道编号,不同上级看到的是不同编号,互不干扰。

  2. 验证级联状态:保存后平台会自动向上级注册,状态变"在线"即链路打通,上级平台即可拉取你共享的通道画面。

级联成功后,通道共享的目录结构还可以按业务分组行政区划来组织,比如按"测试公司/人事行政部"分组推送,或按"省/市/县"行政区划树管理,上级平台看到的目录层次完全由你控制:

级联的完整参数配置、目录订阅与设备订阅细节,官方文档在 doc/_content/ability/cascade.md 和 doc/_content/ability/cascade2.md 有逐步图文讲解。

📌 进阶提示:WVP 支持同时级联多个上级平台,也支持跨网闸部署。公网环境下建议开启 UDP 多端口模式(媒体传输性能更高),媒体节点与平台分开部署以提升并发。

六、新手避坑手册:最常见的 8 个翻车现场

把社区里高频踩坑点整理成对照表,遇到问题先来这里对号入座:

现象大概率原因解决方向
❌ 设备一直"离线"平台 IP/端口没写对,或防火墙拦了 5060先 ping 通,再telnet IP 5060验证
❌ 设备注册上但拉不出画面媒体服务器(ZLM)没启动或配置错确认 ZLM 在线,检查"媒体节点"状态
❌ 画面卡顿、花屏传输模式与网络环境不匹配内网用 UDP,跨公网可切换 TCP 试试
❌ 级联后上级看不到通道通道没勾选,或目录订阅未生效检查"选择通道",触发一次目录更新
❌ 云录像没有文件磁盘空间不足或录制未开启检查磁盘、确认录制计划/云端录制开关
❌ 改完配置不生效没重启服务或没刷新缓存配置类修改建议重启 WVP 进程
❌ 数据库连接失败时区/字符集配置问题连接串加serverTimezone=Asia/Shanghai
❌ 视频有画面没声音音频过滤被开启在通道设置中关闭"过滤音频"

两个最容易忽略的配置项:

  • 媒体节点配置:平台默认自动发现 ZLM,但公网/NAT 环境下需要手动指定"媒体节点"的 IP、HTTP/RTMP/RTSP 端口和 SECRET 密钥,前后端必须完全一致:

  • 推流/拉流地址:平台支持直接输出 RTSP、RTMP、HTTP-FLV、WS-FLV、HLS 多种协议流地址,取流地址可以直接给其他系统使用,无需再登录调用接口。

七、实战演练:连锁门店监控统一上云

理论都过了一遍,最后用一个完整案例串起来:某连锁品牌有12 家门店、约 150 路摄像头,品牌混杂(海康、大华、宇视),此前各门店各自录像、总部无法统一查看,也没法向集团安防平台共享。

需求分析

  • 总部统一查看全部门店实时画面与回放
  • 录像集中在总部机房留存(关键点位 24 小时云录)
  • 按"大区/门店"维度分级管理权限
  • 需要向集团监管平台做国标级联共享

分阶段实施

第一阶段:基础架构部署(1 周)

  • 总部机房部署 2 台服务器:应用服务器(8 核 16GB,跑 WVP)与媒体服务器(16 核 32GB,跑 ZLMediaKit,承担转码与分发)
  • 初始化数据库,按第二节步骤完成平台部署
  • 申请公网 IP,配置 NAT 端口映射(信令 5060 + 媒体端口段),开放防火墙

第二阶段:设备批量接入(1 周)

  • 整理 12 家门店 150 路摄像头的国标编号与注册密码
  • 远程指导各门店在 NVR 端完成国标平台接入配置(即第三节的操作)
  • 在 WVP 中逐店核对设备在线状态,在线率稳定后进入下一阶段

第三阶段:组织与存储配置(3 天)

  • 按"大区 → 门店"建立业务分组,把通道归入对应分组
  • 关键点位(收银台、库房)配置 24 小时云端录像,普通区域按营业时段录制
  • 为不同大区管理员分配独立账号与分组权限

第四阶段:国标级联上集团平台(2 天)

  • 在"国标级联"添加上级平台(集团监管平台),按第五节步骤完成注册与通道共享
  • 验证集团侧可拉流、可回看、目录层级与分组一致

实施效果(基于 3 个月运行统计)

指标结果
设备接入率147/150 路在线(98%)
平台可用性99.8%
平均拉流首帧耗时约 300ms
云录像存储关键点位 24h 全录,节省约 35% 存储(按需录制策略)

💡 实战心得:批量接入时务必提前规划好 20 位国标编号段(比如按门店号+通道号编码),否则后期改编号要一台台重新配置,非常痛苦。

八、学习路线图:从会用到能改,再到能二次开发

如果你不想止步于"会用",这里是一条顺滑的进阶路线:

第 1 站 · 读文档(1 天)官方文档是最佳入口,按顺序过一遍即可建立全局观:

  • 部署与配置:doc/_content/introduction/deployment.md、doc/_content/introduction/config.md
  • 能力专题:设备接入、级联、云录像等都在 doc/_content/ability/
  • 原理讲解:doc/_content/theory/ 下的注册、播放、级联流程拆解

第 2 站 · 抓包看协议(2~3 天)用 Wireshark 或 tcpdump 抓设备与平台间的 SIP 报文,对照 doc/_content/skill/tcpdump.md 理解 REGISTER、INVITE、BYE 等消息流转,这是理解整个系统的钥匙。

第 3 站 · 读核心源码(1 周)

  • 信令入口:src/main/java/com/genersoft/iot/vmp/gb28181/
  • 流媒体对接:src/main/java/com/genersoft/iot/vmp/media/zlm/
  • 前端界面:web/src/views/(想定制界面从这里改)

第 4 站 · 二次开发(长期)平台提供 RESTful API 与 API 密钥机制,写个脚本批量查询设备状态、拉取实时流地址都不在话下。前端是 Vue 工程,改主题色只需动 web/src/styles/variables.scss 一个文件。官方问答合集在 doc/_content/qa/ 里也沉淀了大量开发与排错经验。


最后送你一句实在话:监控系统的成败,一半在平台,一半在规划。先用测试环境把流程走通,再拿一台真实设备验证,最后才上规模——这条路走下来,你手里的 WVP-GB28181-Pro 就不再是一个开源项目,而是属于你自己的安防基础设施。

🚀 立即行动:clone 代码、初始化数据库、跑起平台,15 分钟后,你的第一路国标视频就会出现在屏幕上。遇到卡壳就翻文档、抓包、看日志,这三个动作能解决 90% 的问题。祝入坑顺利!

【免费下载链接】wvp-GB28181-pro基于GB28181-2016、部标808、部标1078标准实现的开箱即用的网络视频平台。自带管理页面,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将普通摄像机/直播流/直播推流转国标共享到国标平台。项目地址: https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表