WVP-PRO国标平台实战Docker化部署与海康摄像头接入指南引言在智能安防领域GB/T 28181标准已经成为视频监控系统互联互通的重要规范。WVP-PRO作为一款开源的国标视频管理平台因其对海康、大华等主流设备的良好兼容性而备受开发者青睐。本文将带您通过Docker这一现代化部署方式快速搭建WVP-PRO环境并重点解析海康威视摄像头的接入全流程。传统部署方式需要手动安装Java、MySQL等依赖环境过程繁琐且容易出错。而使用Docker容器化技术不仅能实现一键部署还能保证环境隔离和版本控制。对于需要快速验证方案或搭建演示环境的用户来说这种方法能节省大量时间成本。1. 环境准备与Docker部署1.1 基础环境配置在开始前请确保您的服务器满足以下条件操作系统Linux推荐Ubuntu 20.04或CentOS 8Docker Engine版本 ≥ 20.10Docker Compose版本 ≥ 1.29硬件配置4核CPU/8GB内存/100GB存储最低要求提示生产环境建议使用专用服务器而非共享主机避免端口冲突和性能瓶颈1.2 使用Docker Compose部署创建docker-compose.yml文件包含以下服务定义version: 3.8 services: mysql: image: mysql:5.7 container_name: wvp-mysql environment: MYSQL_ROOT_PASSWORD: your_secure_password MYSQL_DATABASE: wvp_db volumes: - mysql_data:/var/lib/mysql ports: - 3306:3306 restart: unless-stopped redis: image: redis:6-alpine container_name: wvp-redis volumes: - redis_data:/data ports: - 6379:6379 restart: unless-stopped zlm: image: zlmediakit/zlmediakit:latest container_name: zlmediakit ports: - 1935:1935 # RTMP - 554:554 # RTSP - 30000-30500:30000-30500/udp # RTP端口范围 - 6080:6080 # HTTP API volumes: - zlm_config:/opt/zlmediakit/conf restart: unless-stopped wvp: image: 648540858/wvp-pro:latest container_name: wvp-pro depends_on: - mysql - redis - zlm ports: - 18080:18080 # Web界面 - 5060:5060 # SIP端口 volumes: - ./application.yml:/app/config/application.yml restart: unless-stopped volumes: mysql_data: redis_data: zlm_config:关键配置说明MySQL用于存储设备信息、用户数据等结构化数据Redis处理实时信令和会话状态ZLMediaKit负责媒体流的转发和处理WVP-PRO主业务逻辑容器需挂载自定义配置文件1.3 配置文件定制创建application.yml配置文件重点参数如下sip: ip: 您的服务器公网IP port: 5060 domain: 3402000000 # 根据实际行政区划修改 id: 34020000002000000001 media: id: MEDIA_SERVER_01 ip: zlm # 使用Docker服务名进行内部通信 http-port: 6080 secret: your_zlm_hook_secret rtp: enable: true port-range: 30000,30500启动所有服务docker-compose up -d2. 海康摄像头接入实战2.1 设备网络配置确保摄像头与WVP服务器网络互通登录海康摄像头Web界面默认IP通常为192.168.1.64进入网络配置 基本配置设置与服务器同网段的静态IP在安全 服务中开启GB/T 28181协议支持典型的海康设备GB28181配置参数配置项示例值启用国标协议是SIP服务器ID34020000002000000001SIP服务器地址您的WVP服务器IPSIP服务器端口5060设备域3402000000认证ID摄像头编号如123456789认证密码与WVP配置一致2.2 WVP平台设备管理登录WVP管理界面http://服务器IP:18080进行以下操作添加设备导航到设备管理 国标设备点击添加设备填写设备信息设备ID与摄像头配置的认证ID一致名称自定义标识如前台摄像头厂商Hikvision传输协议UDP默认SIP密码与设备端配置一致设备注册验证保存后设备状态应变为在线点击通道列表应能看到摄像头所有视频通道若状态异常检查网络连通性ping测试SIP端口是否开放telnet测试密码是否匹配2.3 视频流调阅与转发成功接入后可通过以下方式访问视频流实时预览在通道列表点击播放按钮支持多种协议- RTSP: rtsp://wvp-server:554/{设备ID}/{通道ID} - RTMP: rtmp://wvp-server:1935/{设备ID}/{通道ID} - HLS: http://wvp-server:18080/hls/{流ID}.m3u8级联上级平台在系统管理 国标级联中添加上级平台信息关键参数包括上级平台SIP ID服务器地址和端口认证信息选择需要推送的通道3. 高级配置与优化3.1 网络穿透方案对于跨网络部署场景推荐以下方案方案对比表方案类型适用场景实现方式优缺点端口映射简单NAT环境路由器配置端口转发配置简单但安全性较低VPN隧道多设备跨地域组网建立站点到站点VPN安全性高需要额外设备云中转无公网IP环境使用云服务器做信令中转成本较高延迟可能增加3.2 性能调优建议ZLMediaKit参数优化# 在zlm容器中修改config.ini [rtp] timeout_sec60 # 增加RTP超时时间 [hook] enable_flow_report1 # 开启流量统计WVP内存配置通过环境变量调整JVM参数# docker-compose.yml中wvp服务添加 environment: - JAVA_OPTS-Xms2g -Xmx4g -XX:MaxRAMPercentage75%3.3 常见故障排查设备无法注册检查SIP日志docker logs wvp-pro | grep SIP验证网络策略5060 SIP端口是否开放30000-30500 UDP端口范围是否放行视频无法播放检查媒体服务状态curl http://zlm:6080/index/api/getServerConfig验证流是否生成docker exec zlmediakit ls /opt/zlmediakit/www/record4. 生产环境部署建议4.1 安全加固措施必做安全配置修改所有默认密码MySQL、Redis、WVP admin账户启用HTTPS访问Web界面配置防火墙规则仅开放必要端口定期备份数据库和配置文件推荐安全策略1. **网络隔离** - 将视频管理平台部署在DMZ区 - 摄像头接入使用独立VLAN 2. **访问控制** - 启用WVP的接口鉴权 - 配置IP白名单访问 3. **日志审计** - 收集所有容器的运行日志 - 监控异常登录尝试4.2 高可用架构设计对于关键业务场景建议采用以下架构----------------- | 负载均衡层 | | (Nginx/HAProxy) | ---------------- | -------------------------------- | | -------------------- -------------------- | WVP节点1 | | WVP节点2 | | (Docker Swarm/K8s) | | (Docker Swarm/K8s) | -------------------- -------------------- | | -------------------------------- | ---------------- | 共享存储 | | (MySQL Cluster) | ---------------- | ---------------- | 媒体集群 | | (ZLM多节点) | -----------------实现要点使用Keepalived实现VIP漂移Redis Sentinel保证缓存高可用MySQL主从复制确保数据安全媒体流集群通过边缘节点分发4.3 监控与维护基础监控指标# Prometheus监控配置示例 scrape_configs: - job_name: wvp static_configs: - targets: [wvp:18080] metrics_path: /actuator/prometheus - job_name: zlm static_configs: - targets: [zlm:6080] metrics_path: /index/api/getStatistic日常维护建议每周检查存储空间使用情况每月测试灾备恢复流程及时更新安全补丁特别是基础镜像保留至少两个版本的数据库备份
WVP-PRO国标平台实战:如何用Docker快速部署并接入海康摄像头
WVP-PRO国标平台实战Docker化部署与海康摄像头接入指南引言在智能安防领域GB/T 28181标准已经成为视频监控系统互联互通的重要规范。WVP-PRO作为一款开源的国标视频管理平台因其对海康、大华等主流设备的良好兼容性而备受开发者青睐。本文将带您通过Docker这一现代化部署方式快速搭建WVP-PRO环境并重点解析海康威视摄像头的接入全流程。传统部署方式需要手动安装Java、MySQL等依赖环境过程繁琐且容易出错。而使用Docker容器化技术不仅能实现一键部署还能保证环境隔离和版本控制。对于需要快速验证方案或搭建演示环境的用户来说这种方法能节省大量时间成本。1. 环境准备与Docker部署1.1 基础环境配置在开始前请确保您的服务器满足以下条件操作系统Linux推荐Ubuntu 20.04或CentOS 8Docker Engine版本 ≥ 20.10Docker Compose版本 ≥ 1.29硬件配置4核CPU/8GB内存/100GB存储最低要求提示生产环境建议使用专用服务器而非共享主机避免端口冲突和性能瓶颈1.2 使用Docker Compose部署创建docker-compose.yml文件包含以下服务定义version: 3.8 services: mysql: image: mysql:5.7 container_name: wvp-mysql environment: MYSQL_ROOT_PASSWORD: your_secure_password MYSQL_DATABASE: wvp_db volumes: - mysql_data:/var/lib/mysql ports: - 3306:3306 restart: unless-stopped redis: image: redis:6-alpine container_name: wvp-redis volumes: - redis_data:/data ports: - 6379:6379 restart: unless-stopped zlm: image: zlmediakit/zlmediakit:latest container_name: zlmediakit ports: - 1935:1935 # RTMP - 554:554 # RTSP - 30000-30500:30000-30500/udp # RTP端口范围 - 6080:6080 # HTTP API volumes: - zlm_config:/opt/zlmediakit/conf restart: unless-stopped wvp: image: 648540858/wvp-pro:latest container_name: wvp-pro depends_on: - mysql - redis - zlm ports: - 18080:18080 # Web界面 - 5060:5060 # SIP端口 volumes: - ./application.yml:/app/config/application.yml restart: unless-stopped volumes: mysql_data: redis_data: zlm_config:关键配置说明MySQL用于存储设备信息、用户数据等结构化数据Redis处理实时信令和会话状态ZLMediaKit负责媒体流的转发和处理WVP-PRO主业务逻辑容器需挂载自定义配置文件1.3 配置文件定制创建application.yml配置文件重点参数如下sip: ip: 您的服务器公网IP port: 5060 domain: 3402000000 # 根据实际行政区划修改 id: 34020000002000000001 media: id: MEDIA_SERVER_01 ip: zlm # 使用Docker服务名进行内部通信 http-port: 6080 secret: your_zlm_hook_secret rtp: enable: true port-range: 30000,30500启动所有服务docker-compose up -d2. 海康摄像头接入实战2.1 设备网络配置确保摄像头与WVP服务器网络互通登录海康摄像头Web界面默认IP通常为192.168.1.64进入网络配置 基本配置设置与服务器同网段的静态IP在安全 服务中开启GB/T 28181协议支持典型的海康设备GB28181配置参数配置项示例值启用国标协议是SIP服务器ID34020000002000000001SIP服务器地址您的WVP服务器IPSIP服务器端口5060设备域3402000000认证ID摄像头编号如123456789认证密码与WVP配置一致2.2 WVP平台设备管理登录WVP管理界面http://服务器IP:18080进行以下操作添加设备导航到设备管理 国标设备点击添加设备填写设备信息设备ID与摄像头配置的认证ID一致名称自定义标识如前台摄像头厂商Hikvision传输协议UDP默认SIP密码与设备端配置一致设备注册验证保存后设备状态应变为在线点击通道列表应能看到摄像头所有视频通道若状态异常检查网络连通性ping测试SIP端口是否开放telnet测试密码是否匹配2.3 视频流调阅与转发成功接入后可通过以下方式访问视频流实时预览在通道列表点击播放按钮支持多种协议- RTSP: rtsp://wvp-server:554/{设备ID}/{通道ID} - RTMP: rtmp://wvp-server:1935/{设备ID}/{通道ID} - HLS: http://wvp-server:18080/hls/{流ID}.m3u8级联上级平台在系统管理 国标级联中添加上级平台信息关键参数包括上级平台SIP ID服务器地址和端口认证信息选择需要推送的通道3. 高级配置与优化3.1 网络穿透方案对于跨网络部署场景推荐以下方案方案对比表方案类型适用场景实现方式优缺点端口映射简单NAT环境路由器配置端口转发配置简单但安全性较低VPN隧道多设备跨地域组网建立站点到站点VPN安全性高需要额外设备云中转无公网IP环境使用云服务器做信令中转成本较高延迟可能增加3.2 性能调优建议ZLMediaKit参数优化# 在zlm容器中修改config.ini [rtp] timeout_sec60 # 增加RTP超时时间 [hook] enable_flow_report1 # 开启流量统计WVP内存配置通过环境变量调整JVM参数# docker-compose.yml中wvp服务添加 environment: - JAVA_OPTS-Xms2g -Xmx4g -XX:MaxRAMPercentage75%3.3 常见故障排查设备无法注册检查SIP日志docker logs wvp-pro | grep SIP验证网络策略5060 SIP端口是否开放30000-30500 UDP端口范围是否放行视频无法播放检查媒体服务状态curl http://zlm:6080/index/api/getServerConfig验证流是否生成docker exec zlmediakit ls /opt/zlmediakit/www/record4. 生产环境部署建议4.1 安全加固措施必做安全配置修改所有默认密码MySQL、Redis、WVP admin账户启用HTTPS访问Web界面配置防火墙规则仅开放必要端口定期备份数据库和配置文件推荐安全策略1. **网络隔离** - 将视频管理平台部署在DMZ区 - 摄像头接入使用独立VLAN 2. **访问控制** - 启用WVP的接口鉴权 - 配置IP白名单访问 3. **日志审计** - 收集所有容器的运行日志 - 监控异常登录尝试4.2 高可用架构设计对于关键业务场景建议采用以下架构----------------- | 负载均衡层 | | (Nginx/HAProxy) | ---------------- | -------------------------------- | | -------------------- -------------------- | WVP节点1 | | WVP节点2 | | (Docker Swarm/K8s) | | (Docker Swarm/K8s) | -------------------- -------------------- | | -------------------------------- | ---------------- | 共享存储 | | (MySQL Cluster) | ---------------- | ---------------- | 媒体集群 | | (ZLM多节点) | -----------------实现要点使用Keepalived实现VIP漂移Redis Sentinel保证缓存高可用MySQL主从复制确保数据安全媒体流集群通过边缘节点分发4.3 监控与维护基础监控指标# Prometheus监控配置示例 scrape_configs: - job_name: wvp static_configs: - targets: [wvp:18080] metrics_path: /actuator/prometheus - job_name: zlm static_configs: - targets: [zlm:6080] metrics_path: /index/api/getStatistic日常维护建议每周检查存储空间使用情况每月测试灾备恢复流程及时更新安全补丁特别是基础镜像保留至少两个版本的数据库备份