保姆级教程:用Docker Compose一键部署ZLM+WVP-PRO,快速接入海康威视摄像头
保姆级教程用Docker Compose一键部署ZLMWVP-PRO快速接入海康威视摄像头流媒体技术的快速发展让视频监控系统的部署变得更加高效便捷。对于刚接触流媒体项目的技术人员来说如何快速搭建一个稳定可靠的测试或演示环境是首要任务。本文将带你从零开始通过Docker Compose一键部署ZLMediaKitZLM和WVP-PRO并实现与海康威视摄像头的快速对接。整个部署过程采用容器化方案避免了复杂的依赖安装和环境配置问题。我们将重点讲解Docker Compose文件的编写技巧、关键配置参数的联动修改以及常见问题的排查方法。跟着本教程操作你可以在30分钟内完成全套环境的搭建。1. 环境准备与基础架构在开始部署前我们需要了解整个系统的架构组成。ZLM作为流媒体服务器负责视频流的接收、转码和分发WVP-PRO则是视频管理平台提供设备管理、视频预览和录像回放等功能。1.1 系统要求硬件配置CPU至少4核推荐8核以上内存8GB推荐16GB存储50GB可用空间视频存储需求视具体情况而定软件依赖Docker 20.10.0Docker Compose 1.29.0MySQL 5.7Redis 5.0提示建议使用Linux系统进行部署本文以Ubuntu 20.04为例。1.2 网络规划合理的网络规划能避免后期出现连接问题。我们需要确定以下几个关键IP组件示例IP说明ZLM服务器192.168.1.73流媒体服务运行的主机IPWVP-PRO192.168.1.89视频管理平台运行的主机IP摄像头网络192.168.2.0/24摄像头所在的网络段2. Docker Compose部署ZLMZLM是整个系统的核心组件我们使用官方提供的Docker镜像进行部署。2.1 编写docker-compose.yml创建项目目录并编写Compose文件version: 3.8 services: zlmediakit: image: zlmediakit/zlmediakit:master container_name: zlmediakit restart: always ports: - 1935:1935 # RTMP - 8085:80 # HTTP - 8443:443 # HTTPS - 8554:554 # RTSP - 10000:10000 # RTP over TCP - 10000:10000/udp # RTP over UDP - 8000:8000/udp # WebRTC - 9000:9000/udp # HLS - 50000-50500:50000-50500/udp # RTP端口范围 - 50000-50500:50000-50500/tcp # RTP端口范围 volumes: - ./zlm/conf:/opt/media/conf environment: - TZAsia/Shanghai2.2 初始化配置文件首次部署时我们需要获取ZLM的默认配置mkdir -p zlm/conf docker-compose up -d zlmediakit docker cp zlmediakit:/opt/media/conf/config.ini zlm/conf/ docker-compose down2.3 关键配置修改编辑zlm/conf/config.ini重点关注以下参数[api] secretRcMfBHDyaozutIsaSXMaAxlXTkytRslR enable_ffmpeg_logtrue [general] mediaServerIdzlmediakit-local注意这里的secret值需要与后续WVP-PRO配置保持一致。3. WVP-PRO部署与配置WVP-PRO作为视频管理平台需要与ZLM协同工作。3.1 数据库准备首先创建MySQL数据库和用户CREATE DATABASE wvp_pro CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER wvp_user% IDENTIFIED BY Wvp123456; GRANT ALL PRIVILEGES ON wvp_pro.* TO wvp_user%; FLUSH PRIVILEGES;3.2 配置文件调整WVP-PRO的核心配置文件是application.yml需要重点关注以下部分server: port: 18082 sip: ip: 192.168.1.89 port: 5070 domain: 4401020049 id: 44010200492000000001 password: admin123 media: id: zlmediakit-local ip: 192.168.1.73 http-port: 8085 stream-ip: 192.168.1.73 sdp-ip: 192.168.1.73 hook-ip: 192.168.1.89 secret: RcMfBHDyaozutIsaSXMaAxlXTkytRslR3.3 启动WVP-PRO后端使用以下命令启动服务java -jar wvp-pro-*.jar --spring.config.locationapplication.yml4. 海康摄像头接入配置完成基础部署后我们需要将海康威视摄像头接入系统。4.1 摄像头网络配置确保摄像头与ZLM/WVP-PRO网络互通建议配置如下将摄像头IP设置为静态地址如192.168.2.100在路由器上配置192.168.1.0/24与192.168.2.0/24之间的路由测试从WVP-PRO服务器能否ping通摄像头IP4.2 WVP-PRO平台配置登录WVP-PRO管理界面默认用户名admin密码admin按以下步骤操作进入国标设备菜单点击添加设备填写摄像头信息设备ID摄像头SIP编号设备名称自定义名称设备IP摄像头IP地址设备端口默认5060传输协议UDP用户名/密码摄像头SIP认证信息4.3 常见问题排查如果设备无法正常上线可以检查以下几点确认摄像头SIP服务已启用检查WVP-PRO的SIP端口5070是否开放验证摄像头配置的SIP服务器地址是否为WVP-PRO的IP查看ZLM和WVP-PRO的日志文件定位具体错误5. 系统优化与进阶配置基础功能实现后我们可以进一步优化系统性能和功能。5.1 负载均衡配置对于多摄像头场景可以通过以下方式提升性能# 在docker-compose.yml中扩展ZLM实例 zlm1: image: zlmediakit/zlmediakit:master ports: - 1935:1935 # 其他端口... zlm2: image: zlmediakit/zlmediakit:master ports: - 1936:1935 # 其他端口...5.2 录像存储配置修改ZLM配置实现自动录像[record] app_namerecord file_path/opt/media/record file_second36005.3 安全加固建议修改默认密码WVP-PRO admin账户、摄像头SIP密码配置HTTPS访问WVP-PRO限制ZLM API的访问IP定期备份数据库和配置文件在实际项目中我发现最常遇到的问题往往是网络配置不当导致的连接失败。建议在部署前绘制详细的网络拓扑图明确各组件之间的通信路径。对于海康摄像头还需要特别注意其SIP功能的兼容性部分老型号可能需要升级固件才能完美支持GB/T28181标准。