Windows平台GB28181监控系统全栈部署指南从ZLMediaKit编译到wvp-Pro实战第一次在Windows上搭建GB28181监控系统时我盯着满屏的编译错误和配置参数发呆了半小时——这绝不是个愉快的体验。现在回想起来当时如果有一份真正从零开始的避坑指南至少能节省三天时间。本文将用最直白的语言带你完整走通从源码编译到摄像头接入的全流程特别针对Windows平台特有的环境配置、依赖冲突和网络问题提供解决方案。1. 环境准备构建工具链的精确配置1.1 开发环境基础组件在开始编译前需要确保以下组件已正确安装版本号经过严格验证组件名称推荐版本备注Visual Studio2019 Community必须包含C桌面开发工作负载CMake3.20.5安装时勾选Add to system PATHOpenSSL1.1.1m选择Win64 OpenSSL版本Git2.35用于克隆仓库7-Zip最新版解压依赖包必备工具提示所有工具安装路径不要包含中文或空格建议统一使用类似D:\DevTools的目录结构1.2 环境变量配置实战正确配置环境变量是避免后续编译失败的关键# 检查环境变量是否生效管理员权限运行 [Environment]::GetEnvironmentVariable(Path, Machine).Split(;) | Where-Object { $_ -like *OpenSSL* } # 手动添加环境变量示例根据需要调整路径 $newPath D:\DevTools\OpenSSL-Win64\bin; [Environment]::GetEnvironmentVariable(Path, Machine) [Environment]::SetEnvironmentVariable(Path, $newPath, Machine)常见问题排查如果出现找不到openssl命令检查是否添加了bin目录到PATHVS2019的MSVC编译器路径通常为C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x642. ZLMediaKit编译全流程详解2.1 libsrtp的定制化编译WebRTC功能依赖的libsrtp需要特殊编译方式下载源码包并解压到D:\DevTools\libsrtp-2.4.0创建构建目录mkdir build cd build cmake -G Visual Studio 16 2019 -A x64 ..关键CMake参数配置-DCMAKE_INSTALL_PREFIXD:/DevTools/libsrtp -DENABLE_OPENSSLON -DBUILD_SHARED_LIBSON编译完成后需要将生成的srtp2.dll路径加入系统PATH。我曾遇到过因路径错误导致ZLMediaKit链接失败的情况解决方案是# 永久添加dll搜索路径 [Environment]::SetEnvironmentVariable(PATH, D:\DevTools\libsrtp\bin; [Environment]::GetEnvironmentVariable(PATH, Machine), Machine)2.2 ZLMediaKit的深度定制编译从国内镜像克隆代码更稳定git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit git submodule update --init --recursiveCMake配置时需要特别注意这些选项# 在CMake GUI中设置 ENABLE_WEBRTCON CMAKE_INSTALL_PREFIXD:/ZLMediaKit/Release OPENSSL_ROOT_DIRD:/DevTools/OpenSSL-Win64编译过程中可能遇到的典型错误及解决方案WebRTC支持编译失败确认libsrtp环境变量配置正确检查OpenSSL版本是否为1.1.x系列文件路径过长错误Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] LongPathsEnableddword:00000001端口占用问题处理# 查找占用554端口的进程 netstat -ano | findstr :554 # 强制结束进程替换PID taskkill /F /PID 12343. wvp-GB28181-pro部署实战3.1 前置依赖安装指南不同于Linux环境Windows需要特别注意这些组件Redis安装下载Windows版Redis压缩包解压后运行redis-server.exe redis.windows.conf设置为开机启动New-Service -Name Redis -BinaryPathName D:\DevTools\Redis\redis-server.exe --service-run D:\DevTools\Redis\redis.windows.conf -DisplayName Redis -StartupType AutomaticJava环境配置# 验证安装 java -version javac -version # 若出现版本问题检查PATH中JDK路径优先级3.2 前端编译避坑指南国内网络环境下需要调整npm源npm config set registry https://registry.npmmirror.com编译静态资源时的典型错误处理# 清除缓存后重试 rm -rf node_modules npm cache clean --force npm install --legacy-peer-deps npm run build注意若出现node-gyp相关错误需安装Windows构建工具npm install --global --production windows-build-tools3.3 后端配置精要application-dev.yml关键配置项解析media: id: your_media_id # 必须与ZLMediaKit的config.ini中mediaServerId一致 ip: 192.168.1.100 # 本机内网IP http-port: 80 # 与ZLMediaKit的http.port对应 sip: ip: 192.168.1.100 # SIP信令服务器IP port: 5060 # 标准SIP端口数据库配置建议小型测试环境使用内置H2数据库即可生产环境推荐MySQL注意字符集设置为utf8mb44. 系统联调与摄像头接入4.1 服务启动顺序优化正确的启动顺序能避免80%的初始化错误启动Redis服务运行ZLMediaKitcd D:\ZLMediaKit\release\windows64\Debug start MediaServer.exe启动wvp-Projava -jar wvp-pro-2.2.1.jar --spring.profiles.activedev4.2 海康摄像头配置示例通过实际案例演示GB28181设备接入登录摄像头Web界面通常为192.168.1.64进入网络-高级配置-平台接入启用GB/T28181协议服务器地址填写wvp-Pro的SIP IP和端口SIP认证ID格式34020000001320000001媒体传输协议选择TCPwvp-Pro操作流程graph TD A[设备管理] -- B[添加设备] B -- C{选择GB28181} C -- D[填写设备ID/IP] D -- E[保存并刷新]常见接入问题排查检查SIP消息是否到达Wireshark抓包5060端口确认媒体端口范围在ZLMediaKit中已开放查看wvp-Pro日志中的SIP交互记录4.3 性能调优实战高并发场景下的关键参数调整; ZLMediaKit的config.ini优化项 [rtp] timeout_sec3600 [rtmp] handshakeSecond10 keepAliveSecond30 [http] keepAliveSecond30 maxReqSize4096JVM调优建议wvp-Pro# 启动参数示例8G内存机器 java -Xms4g -Xmx6g -XX:UseG1GC -jar wvp-pro-2.2.1.jar记得第一次成功接入摄像头时那个凌晨三点的咖啡格外苦涩。现在你只需要跟着这份指南就能避开我当年踩过的所有坑。如果遇到特别棘手的问题不妨检查下系统时间是否准确——这个看似无关的细节曾让我浪费了整整一天。
Windows 10/11 下保姆级教程:从零编译ZLMediaKit并集成wvp-GB28181-pro实现摄像头监控
发布时间:2026/5/30 16:21:42
Windows平台GB28181监控系统全栈部署指南从ZLMediaKit编译到wvp-Pro实战第一次在Windows上搭建GB28181监控系统时我盯着满屏的编译错误和配置参数发呆了半小时——这绝不是个愉快的体验。现在回想起来当时如果有一份真正从零开始的避坑指南至少能节省三天时间。本文将用最直白的语言带你完整走通从源码编译到摄像头接入的全流程特别针对Windows平台特有的环境配置、依赖冲突和网络问题提供解决方案。1. 环境准备构建工具链的精确配置1.1 开发环境基础组件在开始编译前需要确保以下组件已正确安装版本号经过严格验证组件名称推荐版本备注Visual Studio2019 Community必须包含C桌面开发工作负载CMake3.20.5安装时勾选Add to system PATHOpenSSL1.1.1m选择Win64 OpenSSL版本Git2.35用于克隆仓库7-Zip最新版解压依赖包必备工具提示所有工具安装路径不要包含中文或空格建议统一使用类似D:\DevTools的目录结构1.2 环境变量配置实战正确配置环境变量是避免后续编译失败的关键# 检查环境变量是否生效管理员权限运行 [Environment]::GetEnvironmentVariable(Path, Machine).Split(;) | Where-Object { $_ -like *OpenSSL* } # 手动添加环境变量示例根据需要调整路径 $newPath D:\DevTools\OpenSSL-Win64\bin; [Environment]::GetEnvironmentVariable(Path, Machine) [Environment]::SetEnvironmentVariable(Path, $newPath, Machine)常见问题排查如果出现找不到openssl命令检查是否添加了bin目录到PATHVS2019的MSVC编译器路径通常为C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x642. ZLMediaKit编译全流程详解2.1 libsrtp的定制化编译WebRTC功能依赖的libsrtp需要特殊编译方式下载源码包并解压到D:\DevTools\libsrtp-2.4.0创建构建目录mkdir build cd build cmake -G Visual Studio 16 2019 -A x64 ..关键CMake参数配置-DCMAKE_INSTALL_PREFIXD:/DevTools/libsrtp -DENABLE_OPENSSLON -DBUILD_SHARED_LIBSON编译完成后需要将生成的srtp2.dll路径加入系统PATH。我曾遇到过因路径错误导致ZLMediaKit链接失败的情况解决方案是# 永久添加dll搜索路径 [Environment]::SetEnvironmentVariable(PATH, D:\DevTools\libsrtp\bin; [Environment]::GetEnvironmentVariable(PATH, Machine), Machine)2.2 ZLMediaKit的深度定制编译从国内镜像克隆代码更稳定git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit git submodule update --init --recursiveCMake配置时需要特别注意这些选项# 在CMake GUI中设置 ENABLE_WEBRTCON CMAKE_INSTALL_PREFIXD:/ZLMediaKit/Release OPENSSL_ROOT_DIRD:/DevTools/OpenSSL-Win64编译过程中可能遇到的典型错误及解决方案WebRTC支持编译失败确认libsrtp环境变量配置正确检查OpenSSL版本是否为1.1.x系列文件路径过长错误Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] LongPathsEnableddword:00000001端口占用问题处理# 查找占用554端口的进程 netstat -ano | findstr :554 # 强制结束进程替换PID taskkill /F /PID 12343. wvp-GB28181-pro部署实战3.1 前置依赖安装指南不同于Linux环境Windows需要特别注意这些组件Redis安装下载Windows版Redis压缩包解压后运行redis-server.exe redis.windows.conf设置为开机启动New-Service -Name Redis -BinaryPathName D:\DevTools\Redis\redis-server.exe --service-run D:\DevTools\Redis\redis.windows.conf -DisplayName Redis -StartupType AutomaticJava环境配置# 验证安装 java -version javac -version # 若出现版本问题检查PATH中JDK路径优先级3.2 前端编译避坑指南国内网络环境下需要调整npm源npm config set registry https://registry.npmmirror.com编译静态资源时的典型错误处理# 清除缓存后重试 rm -rf node_modules npm cache clean --force npm install --legacy-peer-deps npm run build注意若出现node-gyp相关错误需安装Windows构建工具npm install --global --production windows-build-tools3.3 后端配置精要application-dev.yml关键配置项解析media: id: your_media_id # 必须与ZLMediaKit的config.ini中mediaServerId一致 ip: 192.168.1.100 # 本机内网IP http-port: 80 # 与ZLMediaKit的http.port对应 sip: ip: 192.168.1.100 # SIP信令服务器IP port: 5060 # 标准SIP端口数据库配置建议小型测试环境使用内置H2数据库即可生产环境推荐MySQL注意字符集设置为utf8mb44. 系统联调与摄像头接入4.1 服务启动顺序优化正确的启动顺序能避免80%的初始化错误启动Redis服务运行ZLMediaKitcd D:\ZLMediaKit\release\windows64\Debug start MediaServer.exe启动wvp-Projava -jar wvp-pro-2.2.1.jar --spring.profiles.activedev4.2 海康摄像头配置示例通过实际案例演示GB28181设备接入登录摄像头Web界面通常为192.168.1.64进入网络-高级配置-平台接入启用GB/T28181协议服务器地址填写wvp-Pro的SIP IP和端口SIP认证ID格式34020000001320000001媒体传输协议选择TCPwvp-Pro操作流程graph TD A[设备管理] -- B[添加设备] B -- C{选择GB28181} C -- D[填写设备ID/IP] D -- E[保存并刷新]常见接入问题排查检查SIP消息是否到达Wireshark抓包5060端口确认媒体端口范围在ZLMediaKit中已开放查看wvp-Pro日志中的SIP交互记录4.3 性能调优实战高并发场景下的关键参数调整; ZLMediaKit的config.ini优化项 [rtp] timeout_sec3600 [rtmp] handshakeSecond10 keepAliveSecond30 [http] keepAliveSecond30 maxReqSize4096JVM调优建议wvp-Pro# 启动参数示例8G内存机器 java -Xms4g -Xmx6g -XX:UseG1GC -jar wvp-pro-2.2.1.jar记得第一次成功接入摄像头时那个凌晨三点的咖啡格外苦涩。现在你只需要跟着这份指南就能避开我当年踩过的所有坑。如果遇到特别棘手的问题不妨检查下系统时间是否准确——这个看似无关的细节曾让我浪费了整整一天。