WVP-PRO国标视频平台通道录像配置实战指南

发布时间:2026/9/6 23:12:27
WVP-PRO国标视频平台通道录像配置实战指南 这次我们直接看一个目前实战中很常见的国标视频平台WVP-PRO。它是完全免费开源的国标 GB28181 视频接入平台核心功能就是把海康、大华、宇视这类支持国标协议的摄像头或 NVR 接入到统一的 Web 管理界面里然后通过浏览器直接看直播、回放录像、云台控制、语音对讲甚至继续向上级平台做国标级联。对做安防集成、系统集成、私有化项目交付的朋友来说这套平台基本能替代一部分商业流媒体服务器的活。这篇文章的重点非常明确就是“通道录像配置”。包括设备怎么接入、通道为什么会离线、录像计划在哪设置、录像文件实际存到哪里、如何通过平台回看录像、以及录像文件怎么清理。同时也会把 WVP-PRO 部署中最容易踩坑的环节比如数据库配置、ZLMediaKit 流媒体服务启动、端口放通、国标目录订阅全部过一遍。读完之后你可以按文章里的步骤自己搭一套国标监控平台并把通道录像完整跑通。文章所有操作均基于通用部署架构没有给定具体公网 IP、端口和数据库密码的位置请按你自己的环境替换。1. 核心能力速览先把 WVP-PRO 的整体能力列出来方便你判断它是否适合当前项目。能力项说明项目类型开源国标 GB28181 视频接入平台附带 Web 管理界面和流媒体网关能力后端框架Java Spring Boot搭配数据库 MySQL / PostgreSQL / SQLite流媒体服务默认内置并联动 ZLMediaKit提供 RTSP、RTMP、HLS、HTTP-FLV、WebRTC 等拉流方式设备接入支持国标 GB28181 设备/平台接入同时支持通过开放的 REST API 管理设备与通道通道管理支持通道树、通道同步、通道状态查看、通道录像配置、云台控制、语音对讲录像能力支持平台录像计划和设备端录像回放平台录像由流媒体服务按 GB28181 标准拉流后存储录像存储录像文件由 ZLMediaKit 写入指定磁盘目录可配置存储策略和计划周期浏览器播放无需安装播放器支持 Web 页面直接预览兼容 H5 拉流级联扩展支持向上级国标平台级联适合多级平台部署场景部署要求需要 Java 环境、数据库、ZLMediaKit 流媒体服务资源消耗主要看并发路数和录像码率是否支持批量支持通道数量多时可通过平台批量分配录像计划也可用数据库脚本批量调整是否支持 API支持平台提供 HTTP API可完成设备查询、通道列表、录像计划配置等常用操作适合场景安防集成项目、园区监控、工厂监控、连锁店铺视频汇聚、国标设备统一管理、国标上云网关核心要点WVP-PRO 本身不是做录像文件的转码工具它更像是一个国标信令网关加设备管理平台。录像、拉流、推流、转封装由流媒体服务负责。所以我们配置录像前必须先确认 WVP-PRO 服务和流媒体服务之间的配置是通的。2. 适用场景与使用边界从实际项目角度看WVP-PRO 主要在下面几类场景里价值最大存量国标设备统一接入。现场已经有几十上百个国标摄像头或 NVR想用一个平台集中查看和管理。视频监控上云。需要把分散在多个分支机构的监控视频汇聚到总部平台或继续向上级监管平台上报。私有化安防平台。客户不允许使用公有云监控平台要求视频数据留在本地或内网。国标协议联调测试。作为国标下级平台去模拟设备测试上级平台的接入能力。快速给内部系统提供监控视频流。通过 API 把直播流地址输出给第三方业务系统。同时也要说清楚它的边界避免踩坑WVP-PRO 是“信令 管理”平台不是专业 NVR虽然能配置通道录像但更适合做录像汇聚和回放若需要长时间、大容量、强检索的录像服务建议配合专业存储或 NVR 使用。国标设备的录像回放依赖设备端是否支持 GB28181 录像查询。部分低端摄像头没实现历史视频检索接口这时候只能走平台录像让流媒体服务持续拉流存储。平台录像会占用大量磁盘 I/O 和网络带宽。多路高清长时间录像时一定要单独规划存储盘不要和系统盘混用。涉及人脸、车牌、门禁、行踪等个人信息时要严格遵循网络安全法、个人信息保护法和当地监控管理规定。测试环境也要使用自己拥有或获得授权的素材禁止采集未授权区域画面。语音对讲功能涉及现场声音采集使用前必须告知现场人员并取得合法授权。3. WVP-PRO 本地部署环境准备在开始安装前先把环境准备清楚。下面这套环境是 WVP-PRO 项目常见的部署组合适用于 Ubuntu 20.04/22.04、CentOS 7/8、Deepin 以及 Windows 开发环境。不同操作系统命令稍有差异但核心依赖一致。3.1 硬件配置建议项目最小配置推荐配置CPU2 核4 核及以上内存4 GB8 GB 及以上系统盘40 GB100 GB SSD录像盘按录像路数和天数估算单独挂载数据盘容量越大越好网络千兆内网按码率计算上行带宽录像盘空间建议按公式估算单路 1080PH.264平均码率按 4 Mbps 计算。一天录像容量约4 Mbps × 3600 秒 × 24 小时 ÷ 8 约 43 GB。10 路摄像头存 30 天约 43 × 10 × 30 12900 GB也就是大约 13 TB。如果你的摄像头编码是 H.265同样的画质下码率可能下降到一半容量也会相应减少。这里注意实际码率取决于摄像头码流配置、画面复杂度和编码参数最终容量以实际录像文件为准。3.2 软件依赖清单软件版本建议说明JDK1.8 或 11/17视发布包要求WVP-PRO 后端 Java 服务依赖MySQL5.7 或 8.0也可以使用 PostgreSQL / SQLite生产建议 MySQLRedis5.0 及以上部分新版本用于缓存、流媒体会话管理如未使用可跳过但建议安装ZLMediaKit最新稳定版流媒体服务负责拉流、推流、录像写入FFmpeg4.x 及以上可选主要用于 HLS 切片、拉流转码等辅助能力Node.js16/18/20前端管理界面构建时需要3.3 安装基础依赖先更新系统安装常用工具然后装 JDK 和 Git。# Ubuntu / Deepin sudo apt update sudo apt install -y git wget curl unzip tar # CentOS sudo yum install -y git wget curl unzip tar安装 JDK这里以 OpenJDK 11 为例sudo apt install -y openjdk-11-jdk # 或者 sudo yum install -y java-11-openjdk-devel检查 Java 版本java -version安装 MySQL 和 Redis# Ubuntu / Deepin 安装 MySQL sudo apt install -y mysql-server sudo systemctl enable --now mysql # 安装 Redis sudo apt install -y redis-server sudo systemctl enable --now redisMySQL 初始化完成后需要创建一个 WVP-PRO 使用的数据库和账号。这里以数据库名wvp、账号wvp、密码wvp123456为例换成你自己的强密码。CREATE DATABASE IF NOT EXISTS wvp DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER wvp% IDENTIFIED BY wvp123456; GRANT ALL PRIVILEGES ON wvp.* TO wvp%; FLUSH PRIVILEGES;如果你的 MySQL 只允许本地访问客户端连接时使用127.0.0.1即可但后端服务和数据库在同一台机器时建议使用127.0.0.1连接避免不必要的网络暴露。3.4 端口规划WVP-PRO 与 ZLMediaKit 涉及多个端口部署前先确定好端口占用情况服务默认端口用途WVP-PRO Web/API18080管理界面和 HTTP APIWVP-PRO 国标信令5060UDP/TCPSIP 国标信令ZLMediaKit RTSP554RTSP 拉流ZLMediaKit RTMP1935RTMP 拉流/推流ZLMediaKit HTTP-FLV8080/80HTTP-FLV 流输出ZLMediaKit WebRTC10000浏览器 WebRTC 拉流MySQL3306数据库Redis6379缓存查看端口占用sudo lsof -i:18080 sudo ss -lntup | grep -E 18080|5060|554|1935|8080|10000如果有服务占用请提前处理或修改配置否则启动后会出现端口绑定失败。4. WVP-PRO 安装部署与服务启动WVP-PRO 的部署方式不只一种最简单的思路是编译打包后端 构建前端 启动 ZLMediaKit。下面给出一套通用流程所有命令中的版本号、仓库地址请以项目发布的实际信息为准。4.1 获取项目源码git clone https://gitee.com/kkkkk5g/wvp-GB28181-pro.git cd wvp-GB28181-pro也可以从 GitHub 或 Gitee 的 release 页面直接下载最新发布包使用 release 包可以跳过编译环节直接修改配置启动。4.2 后端打包通常使用 Maven 打包mvn package -DskipTests打包完成后在target目录下会生成 jar 包例如wvp-pro-*.jar。把 jar 包放到部署目录比如/opt/wvp-pro/。如果是自定义数据库需要提前把数据库建好并确认后端配置中的地址、账号、密码正确。WVP-PRO 首次启动时如果开启自动建表会自动创建数据表否则需要手动导入项目中的 SQL 脚本。4.3 修改后端配置WVP-PRO 的配置文件通常是application.yml。把配置项中的数据库、Redis、流媒体服务、SIP 信令等相关参数改成你自己的。server: port: 18080 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/wvp?useSSLfalseserverTimezoneAsia/ShanghaicharacterEncodingUTF-8 username: wvp password: wvp123456 redis: host: 127.0.0.1 port: 6379 password: database: 0 sip: ip: 127.0.0.1 # 本机内网 IP可被设备访问 port: 5060 # SIP 信令端口 domain: 34020000002000000001 id: 34020000002000000001 password: 12345678 media: ip: 127.0.0.1 # ZLMediaKit 服务 IP port: 8080 # ZLMediaKit HTTP API 端口 secret: your_media_secret stream-ip: 127.0.0.1 # 流媒体对外访问 IP http-port: 8080 rtmp-port: 1935 rtsp-port: 554 rtp-port: 10000 enable-rtsp: true enable-rtmp: true enable-hls: true enable-fmp4: true注意这里的sip.ip、media.ip、stream-ip需要设置成摄像头或 NVR 能访问到的地址。如果是内网设备写机器内网 IP如果跨公网要配置公网 IP 或内网穿透并放通对应端口。4.4 启动 ZLMediaKitZLMediaKit 是独立的流媒体进程。获取源码并编译git clone https://gitee.com/zlmediakit/ZLMediaKit.git cd ZLMediaKit git submodule update --init ./build_for_linux.sh编译完成后进入生成的build或release目录启动cd release/linux/Debug/ ./MediaServer -d -c config.ini如果启动成功会在日志中输出监听端口。此时确认 8080、554、1935、10000 等端口正常监听。开发环境也可以直接用已编译的发行包具体以官方 release 为准。生产环境建议把 MediaServer 注册为 systemd 服务方便开机自启和守护。4.5 启动 WVP-PRO 后端后端 jar 包启动cd /opt/wvp-pro nohup java -jar wvp-pro-*.jar --spring.config.locationfile:/opt/wvp-pro/application.yml /opt/wvp-pro/wvp.log 21 然后查看日志tail -f /opt/wvp-pro/wvp.log日志中出现类似“服务启动成功”或 HTTP 端口监听成功的字样说明后端启动完成。4.6 启动前端管理界面WVP-PRO 的前端项目通常是独立仓库依赖 Node.js。克隆前端项目后执行npm install npm run build构建产物会生成在dist目录。把dist目录里的文件发布到 Nginx 静态目录并配置代理server { listen 80; server_name your_domain_or_ip; root /opt/wvp-web/dist; index index.html; location /api/ { proxy_pass http://127.0.0.1:18080/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }如果只是内网快速验证也可以直接用npm run dev启动开发模式然后通过 Vite/Webpack 代理访问后端。生产环境统一用 Nginx 托管静态文件和反向代理。4.7 访问管理界面浏览器访问http://服务器IP:80或http://服务器IP:18080如果后端直接打开。第一次进入需要登录。默认管理员账号和密码以项目说明为准通常为admin/admin或admin/123456。登录后第一件事是进入系统设置确认媒体服务配置是否正常。如果媒体服务连接成功系统里会显示媒体节点在线如果显示离线登录 WVP 后先解决媒体服务连接再继续设备接入。5. 设备接入与通道管理WVP-PRO 的核心工作方式是向下连接国标摄像头/平台向上给你提供 Web 和 API。5.1 添加国标设备在 WVP-PRO 界面中找到“国标设备”或“设备管理”点击“添加”。需要填写的信息包括设备名称例如“厂区东门”。设备国标编号例如34020000001320000001。设备国标域例如3402000000。设备 IP 或域名。端口默认 5060。认证用户名和密码需要与摄像头/NVR 里的 SIP 设置保持一致。在摄像头或 NVR 的 GB28181 配置界面里也用同样的思路填写平台侧的信息SIP 服务器 IP 填 WVP-PRO 所在服务器 IPSIP 端口填 5060SIP 用户 ID 和认证密码与 WVP-PRO 中设备信息一致。5.2 通道同步设备添加成功后WVP-PRO 会向设备发送目录订阅请求设备返回通道列表。这个过程叫通道同步。在“国标设备”列表里找到该设备点击“通道同步”。同步成功后设备节点下面会列出摄像头通道每个通道对应一路视频。如果通道数量为 0可能原因摄像头/NVR 里的 SIP 配置不正确没有注册成功。设备没有启用国标目录订阅。WVP-PRO 与设备网络不通。设备国标编号重复或不符合规范。通道同步完成后在“通道管理”或“设备通道”页面可以看到每一路通道的状态。通道状态显示在线说明取流和信令链路正常。5.3 通道详情与直播预览点击某个通道的“播放”按钮浏览器会调用 WVP-PRO 获取流地址再通过 ZLMediaKit 拉流并输出到 Web 前端播放。首次播放时可能会有一两秒延迟这是国标 INVITE 流程的正常现象。如果直播画面无法打开排查顺序通道是否在线。摄像头码流类型是否设置为子码流或主码流平台是否支持对应编码。ZLMediaKit 端口是否被防火墙拦截。服务器带宽是否足够。摄像头是不是只允许单路预览。直播成功后下一步就是通道录像配置。6. WVP-PRO 通道录像配置全过程录像配置是这篇文章的核心。很多人装好 WVP-PRO 后直播没问题但录像不生效或者录像文件一直不写入磁盘。下面按照从存储规划、录像计划、通道关联到录像验证的完整顺序来讲。6.1 确定录像实现方式WVP-PRO 的录像主要有两种路径录像方式原理优缺点设备端录像回放WVP 通过国标信令查询设备/ NVR 上的历史录像然后把历史流拉取到平台播放不占用 WVP 平台存储但依赖设备的国标录像查询能力不同厂家兼容性有差异平台录像ZLMediaKit 根据 WVP 下发的指令实时把通道码流录制成文件保存到服务器磁盘录像不受设备端限制统一管理但需要规划存储空间和 I/O 能力本章主要讲“平台录像”的完整配置步骤因为这是 WVP-PRO 可以完全掌控的录像能力也是项目交付中最常用、最可控的方案。6.2 先规划好录像存储目录在配置录像之前一定要先确认 ZLMediaKit 的录像保存路径。ZLMediaKit 的配置文件中一般有一个record相关配置里面指定了录像文件的保存根目录。例如在 ZLMediaKit 的config.ini中[record] # 录像存储根目录 appPath./record # 录像切片时长, 单位秒 fileBufSize65536 # 录像文件格式 recordSecond3600生产环境建议把appPath改为独立数据盘路径比如/data/record并且保证该目录有足够空间。sudo mkdir -p /data/record sudo chmod -R 777 /data/record查看磁盘空间df -h /data/record如果根分区空间不足先把数据盘挂载到/data或/data/record再做录像配置否则录像会把系统盘写满导致服务崩溃。6.3 在 WVP-PRO 中配置存储策略登录 WVP-PRO进入“系统配置”或“存储配置”相关菜单。核心参数一般包括流媒体服务是否开启录像。录像存储类型比如“本地存储”。录像存储路径和 ZLMediaKit 配置的appPath保持对应。录像切片时长比如 30 分钟或 60 分钟切片一次方便检索和清理。是否按通道分目录保存。如果 WVP-PRO 界面里没有明确的存储策略那么可以确认 ZLMediaKit 的录像配置已经开启然后在通道录像计划里写入计划平台会通过媒体服务接口把录像任务下发到 ZLMediaKit 执行。注意WVP-PRO 的录像计划配置最终作用对象是 ZLMediaKit两者要能正常通信。如果媒体服务配置错误录像计划下发不成功那么无论计划怎么填都不会有录像。6.4 创建录像计划通道录像配置的常规路径是进入“国标设备”- 选择设备 - 找到“通道”或“录像计划” - 新建计划。一个录像计划通常包含下面的字段字段示例值说明计划名称白天 8 小时录像用于识别计划的名称生效时间每天 08:00 - 18:00录像计划的日期和时间范围星期周一至周五可重复周期通道范围指定通道或全部通道一个计划可以关联多个通道码流类型主码流 / 子码流 / 视频流主码流清晰度高子码流省空间录像类型连续录像 / 事件录像取决于平台支持情况创建一个最简单的“全天录像”计划计划名称填全天录像。时间范围选择00:00 - 23:59。星期选“每天”。通道范围选择需要录像的通道例如通道 1、通道 2、通道 3。码流类型选择主码流如果摄像头带宽有限也可以选子码流。保存计划。如果平台支持“按星期”重复录像可以创建工作日、非工作日两套计划避免周六周日空拍。6.5 将录像计划关联到通道创建完计划后在通道列表中勾选要录像的通道把计划应用到这些通道。这一步非常容易出现遗漏因为只建了计划但没有“关联通道”计划不会生效。操作时注意三个方面确认通道状态为在线。确认计划生效时间覆盖当前时间。确认关联通道后界面上能看到通道对应计划的状态而不是空白。某些版本下通道录像计划也可以直接在“通道管理”页面里针对单通道设置此时你可以选择具体的通道点击“配置录像”或“编辑计划”来完成关联。6.6 验证录像是否真正写入磁盘录像计划保存后等待超过计划生效时间比如 2 分钟后查看 ZLMediaKit 录像目录。find /data/record -type f | head -n 50 ls -lh /data/record/正常情况会看到按日期和通道生成的目录里面有.mp4或.flv等录像文件。文件大小会随录像时长增长。继续验证平台能不能查看到这段录像。在 WVP-PRO 界面中进入“录像查询”选择通道和时间范围点击查询。平台应该能列出刚才的录像文件。选择其中一个文件点击回放浏览器播放器会开始播放。如果录像查询查不到文件但磁盘上已经有文件说明数据库里录像索引和文件没同步。常见原因是媒体服务配置的 HTTP 回调地址没有正确配置到 WVP-PRO或者回调接口被防火墙拦截。解决办法是在 ZLMediaKit 的配置里设置on_record_mp4等回调地址为 WVP-PRO 的接口地址让媒体服务在录像文件生成后通知 WVP-PRO 记录索引。6.7 计划录像与手动录像除了按计划录像WVP-PRO 也支持手动控制某一路通道开始录制/停止录制。操作思路在通道详情或通道列表中找到“开始录像”或“手动录像”按钮。点击后 WVP 向 ZLMediaKit 发送开始录制指令。过几分钟到录像目录里查看如果文件出现说明手动录像链路正常。手动录像适合临时取证场景例如突发情况时开启某通道录像不需要长期占用存储空间。6.8 录像文件查看和导出对于平台录像直接到 ZLMediaKit 的record目录下复制.mp4文件即可导出。也可以使用 WVP-PRO 的录像查询页面根据通道和时间定位到录像片段然后下载对应文件。国标设备录像回放则不同。如果设备端NVR本身存了录像WVP-PRO 通过国标信令向设备发送媒体回放请求设备把录像流推送到平台上然后平台转码输出到浏览器。你可以按小时/天查询设备上的录像列表然后逐段点播回放。这种模式下不需要 WVP-PRO 磁盘存储录像WVP 只是起信令中转和流分发作用。7. 录像回放与存储策略录像不是录完就结束。上线之后需要持续关注存储空间、录像文件保留周期和回放体验。7.1 按通道目录管理推荐在 ZLMediaKit 的录像配置里启用按通道目录保存这样每个通道每天的录像文件都在独立的目录下管理方便。例如/data/record/ ├── 34020000001320000001/ │ ├── 2025-06-01/ │ │ ├── 10_00_00.mp4 │ │ ├── 11_00_00.mp4 │ │ └── ... │ └── 2025-06-02/ │ └── ... └── 34020000001320000002/ └── ...这个目录结构可以直接用脚本做定时清理。7.2 录像清理策略录像一直在增长必须设定保留周期。常见策略保留 7 天适合临时查证场景。保留 30 天适合常规安防项目。保留 90 天适合重要监管区域但对存储容量要求高。写一个简单的定时清理脚本删除指定天数之前的录像文件#!/bin/bash RECORD_DIR/data/record KEEP_DAYS30 find ${RECORD_DIR} -type f -name *.mp4 -mtime ${KEEP_DAYS} -delete find ${RECORD_DIR} -type d -empty -delete加入 crontab每天凌晨执行一次crontab -e 0 3 * * * /usr/local/bin/clean_record.sh也可以使用 WVP-PRO 自带的存储清理功能如果有的话优先使用平台能力脚本只作为兜底。7.3 录像回放稳定性回放卡顿的原因通常是磁盘 I/O 不足、带宽不足或录像文件碎片化。保证回放体验的建议录像盘使用独立机械硬盘或 SSD。如果并发回放人数多优先使用 SSD 并提升内存。避免在录像盘上同时跑数据库和媒体服务。回放时优先选择子码流。8. 接口 API 与自动化运维思路WVP-PRO 提供 HTTP API可以对接第三方系统或做自动化运维。这里给一个通用调用模板。真实请求地址、参数、鉴权方式需要按你部署版本的接口文档调整。8.1 登录并获取 Token通常 API 需要先登录获取访问凭证。curl -X POST http://127.0.0.1:18080/api/login \ -H Content-Type: application/json \ -d { username: admin, password: admin }返回体里会包含 token 或 sessionId。8.2 查询通道列表curl -X GET http://127.0.0.1:18080/api/device/channel/list?page1count100 \ -H Authorization: Bearer YOUR_TOKEN8.3 配置通道录像计划不同版本的接口路径可能不同这里给出一个“按通道设置录像计划”的 POST 模板curl -X POST http://127.0.0.1:18080/api/record/plan \ -H Content-Type: application/json \ -H Authorization: Bearer YOUR_TOKEN \ -d { channelId: 34020000001320000001, planName: 全天录像, timeRange: 00:00-23:59, week: 1,2,3,4,5,6,7, streamType: main, recordType: continuous }8.4 Python 批量配置示例如果通道数量很大可以写 Python 脚本从 Excel 读取通道列表循环调用接口。import requests import time BASE_URL http://127.0.0.1:18080 TOKEN YOUR_TOKEN HEADERS {Authorization: fBearer {TOKEN}, Content-Type: application/json} def set_record_plan(channel_id, plan_name全天录像): url f{BASE_URL}/api/record/plan payload { channelId: channel_id, planName: plan_name, timeRange: 00:00-23:59, week: 1,2,3,4,5,6,7, streamType: main, recordType: continuous } resp requests.post(url, jsonpayload, headersHEADERS, timeout10) print(channel_id, resp.status_code, resp.text) time.sleep(0.5) channel_list [ 34020000001320000001, 34020000001320000002, ] for cid in channel_list: set_record_plan(cid)使用脚本批量配置前先在单个通道上验证接口参数接口响应结构和字段名不确定时先在页面上点击一次并打开浏览器开发者工具查看实际请求路径和方法。在批量任务设计上建议加一个简单的失败重试和日志避免因为某个通道异常导致后面全部跳过。9. 资源占用与性能观察WVP-PRO 本身的 Java 进程在通道数量少时占用不高真正消耗资源的是 ZLMediaKit 和存储 I/O。性能观察可以从四个维度来看。9.1 观察 CPU 和内存使用top或htop查看top重点看 Java 进程和 MediaServer 进程的 CPU 和内存占用。如果资源占用长期过高优先确认是不是并发拉流路数过多、HLS 切片过密或者转码导致。9.2 观察磁盘 I/O使用iostat查看iostat -x 1 5重点看%util和await。当%util长时间接近 100% 时磁盘压力较大。录像配置多路高清视频时建议把录像目录和系统目录分开。9.3 观察网络流量使用nload或iftopsudo apt install -y nload nload若带宽被打满说明码流过大或并发观看路数过多。此时可以降低录像码流类型或者限制同时回放的路数。9.4 如何判断 WVP-PRO 是否正常打开管理界面确认媒体节点在线。查看 WVP 日志确认设备注册、通道同步、录像计划下发没有报错。查看 ZLMediaKit 日志确认没有连接超时、鉴权失败等报错。查看磁盘空间确认录像目录还有余量。如果页面能播放直播但录像不写入优先排查 ZLMediaKit 的录像开关和回调地址这两点占录像问题的大多数。10. 常见问题与排查方法下面整理 WVP-PRO 部署和通道录像配置中最高频的问题。问题现象可能原因排查方式解决方案摄像头国标注册不上SIP 端口未放通、设备 ID/密码配置错误查看 WVP 日志确认 SIP 注册信息检查 WVP-PRO SIP 地址、端口、设备国标编号与设备端一致通道状态离线注册成功但目录订阅或心跳超时查看设备通道列表看设备最近活跃时间检查设备和平台网络尽量保持网络稳定重新同步通道直播画面黑屏流媒体服务拉流失败、码流编码不受支持、带宽不够查看 ZLMediaKit 日志确认是否成功收流更换码流类型检查防火墙端口确认摄像头码流协议录像计划保存生效但没录像文件录像开关未开启、计划未关联通道、ZLMediaKit 回调没配查看录像目录和 ZLMediaKit 日志开启录像开关确认计划关联到在线通道配置录像回调有录像文件但平台查不到回调地址错误导致录像索引未写入数据库查看 WVP 日志确认录像回调请求在 ZLMediaKit 里配置 on_record_mp4 回调到 WVP 接口录像回放卡顿磁盘 I/O 不足、带宽不足、回放码流过大用 iostat 和 nload 看资源使用 SSD 盘降低回放码流增加带宽磁盘被录像写满录像保留策略缺失df -h 查看磁盘占用配置录像自动清理脚本设定保留天数后端启动失败端口被占用18080 或 5060 被其他进程占用ss -lntup 查看端口更换端口或停掉占用进程媒体服务配置不对页面显示节点离线media ip/secret 配置错误查看 WVP 配置和 ZLMediaKit 日志用正确的 IP 和 secret 修改配置并重启数据库连接失败MySQL 未启动、账号权限错误、密码错误手动连接数据库测试检查和修正数据库连接配置每遇到一个新问题首先看日志这是最可靠的排查手段。WVP-PRO 后端日志一般会打印 SIP 注册、信令交互和设备状态变化ZLMediaKit 日志会打印取流、断流、录像写入情况。不要只凭管理界面显示的状态判断问题。11. 最佳实践与工程建议WVP-PRO 上线到生产环境前下面这些实践建议值得提前规划好。11.1 部署结构建议小规模项目50 路以内单台服务器部署 WVP-PRO MySQL Redis ZLMediaKit录像目录挂独立数据盘。中大规模项目WVP-PRO 和 ZLMediaKit 分开部署。WVP-PRO 作为信令和管理层ZLMediaKit 作为流媒体层数据盘独立。如果设备分布在不同网段需要提前规划好路由保证 SIP 信令和 RTP 媒体流都能互通。11.2 安全加固WVP-PRO 管理后台不要暴露到公网必须暴露时加 Nginx 反向代理、HTTPS 和访问认证。设备国标 SIP 密码不要使用空密码或弱密码。命令行和配置文件中不要硬编码数据库密码生产环境使用环境变量或配置管理工具。WVP-PRO 的 API 服务不使用时不要开放到公网。定期检查服务器安全日志避免被扫描和暴力破解。11.3 合规使用提醒监控视频涉及个人信息和隐私安全一定要强调部署和使用监控平台前确认监控区域属于合法监控范围现场需要有明确告知。录像数据要分级管理严格控制访问权限不能随意分享给无权查看的人员。人脸、车辆等敏感数据的存储和调用要符合个人信息保护法及相关规定。测试环境只能使用自己拥有或已获授权的画面不要对小区、单位、公共场所进行未授权录像测试。平台产生的录像数据如果需要保留要制定明确的保留周期到期自动清理。11.4 运维保障录像目录和数据库目录不要混用。每天检查一次磁盘空间和媒体服务状态。配置录像清理脚本避免磁盘写满。数据库、服务配置和关键脚本定期备份。服务启动方式建议使用 systemd 托管保证异常退出后自动重启。下面给出一个简单的 systemd 启动 WVP-PRO 的示例[Unit] DescriptionWVP-PRO Service Aftermysql.service redis.service [Service] Typesimple Userroot WorkingDirectory/opt/wvp-pro ExecStart/usr/bin/java -jar /opt/wvp-pro/wvp-pro.jar --spring.config.locationfile:/opt/wvp-pro/application.yml Restarton-failure RestartSec10 StandardOutputappend:/opt/wvp-pro/wvp.log StandardErrorappend:/opt/wvp-pro/wvp.log [Install] WantedBymulti-user.target启用sudo systemctl daemon-reload sudo systemctl enable wvp-pro sudo systemctl start wvp-pro sudo systemctl status wvp-pro12. 总结与下一步WVP-PRO 是一套很值得部署的国标视频平台最值得尝试的点在于它把国标信令、设备管理、直播预览、通道录像、API 输出全部打通了完全可以作为安防项目的核心视频网关来用。先验证什么我的建议是把顺序定为部署 WVP-PRO 和 ZLMediaKit 并确认媒体节点在线。接入一个摄像头或模拟器确认通道同步和直播正常。创建一组录像计划关联到单个通道验证磁盘写入和历史回放。再用脚本或 API 批量配置其它通道。最容易踩的坑有四个一是媒体服务配置不对导致页面显示节点离线二是录像计划没有关联到通道计划建了但没效果三是 ZLMediaKit 录像回调没配置导致文件录了但平台索引不到四是磁盘空间规划不足跑几天就被写满。如果这套平台你已经跑通了基础录像下一步可以继续做国标级联把 WVP-PRO 作为下级平台推送到另一个上级国标平台也可以把 WVP-PRO 的直播和回放能力接入到企业内部统一视频平台通过鉴权机制控制访问范围通道数量特别多时还可以结合 API 做自动巡检和故障告警。建议先把文章收藏备用等动手部署的时候把带宽、磁盘和端口放通这三件事提前想清楚后面会顺利很多。