参考:
代码地址
官方Wiki步骤
官方文档
前提:都是在21上面装的
最重要的是配置文件:
一、zlm
cd /home/wvp/ZLMediaKit/release/linux/Debug
nohup ./MediaServer -d -m 3 &
tail -f /home/wvp/ZLMediaKit/release/linux/Debug/nohup.out
配置文件是 /home/wvp/ZLMediaKit/release/linux/Debug/config.ini
(只列出了需要更改的部分)
[general]
mediaServerId=WFnANVL1A063vbO3 //修改id与wvp配置文件的media.id一样
[http]
port=8090 //修改了这里的端口,与wvp配置文件中的media.port一致
二、wvp-pro
先要在mysql中新建一个wvp数据库,再导入github里面提供的数据表
官方步骤
执行命令:
cd /home/wvp/wvp-GB28181-pro/target/
nohup java -jar wvp-pro-*.jar &
tail -f /home/wvp/wvp-GB28181-pro/target/nohup.out
最后访问 http://192.168.1.21:18080/
即可。用户名密码默认admin/admin
配置文件是 /home/wvp/wvp-GB28181-pro/target/application.yml
(只列出了需要更改的部分)
spring:
# REDIS数据库配置
redis:
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
host: 127.0.0.1
# [必须修改] 端口号
port: 6379
# [可选] 数据库 DB
database: 6
# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
password: abcd=1234
# [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false
username: root
password: Root_123
# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
port: 18080
# 作为28181服务器的配置
sip:
# [必须修改] 本机的IP, 必须是网卡上的IP,用于sip下协议栈监听ip,如果监听所有设置为0.0.0.0
monitor-ip: 192.168.1.21
# [必须修改] 本机的IP
ip: 192.168.1.21
# [可选] 28181服务监听的端口
port: 5061
# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
# 后两位为行业编码,定义参照附录D.3
# 3701020049标识山东济南历下区 信息行业接入
# [可选]
domain: 4401020049
# [可选]
id: 44010200492000000001
# [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
password: admin123
#zlm 默认服务器配置
media:
# [必须修改] zlm服务器唯一id,用于触发hook时区别是哪台服务器,跟zlm的 general.mediaServerId 一致
id: WFnANVL1A063vbO3
# [必须修改] zlm服务器的内网IP
ip: 192.168.1.21
# [必须修改] zlm服务器的http.port (跟zlm的http.port一致)
http-port: 8090
# 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用 (有wvp-pro-assist就配,没有就写0)
record-assist-port: 18081
三、wvp-pro-assist
要实现下载录像,必须要安装这个工具。
可以不自己下载ffmpeg,把wvp-pro-assist/lib里面的ffprobe和ffmpeg软连接到/usr/bin/目录,然后执行mvn打包生成jar文件再启动。这样的ffmpeg版本比yum install的高,可以下载相对大的视频。
ffmpeg下载
官方步骤
执行命令:
cd /home/wvp/wvp-pro-assist/target
nohup java -jar wvp-pro-assist-*.jar --spring.config.location=application.yml &
tail -f /home/wvp/wvp-pro-assist/target/nohup.out
配置文件在 /home/wvp/wvp-pro-assist/target/application.yml
(只列出了需要更改的部分)
spring:
# REDIS数据库配置
redis:
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
host: 127.0.0.1
# [必须修改] 端口号
port: 6379
# [可选] 数据库 DB
database: 8
# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
password: abcd=1234
# [可选] 超时时间
timeout: 10000
# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口 (跟wvp-pro的 media.rtp.record-assist-port 一致)
server:
port: 18081
# [根据业务需求配置]
userSettings:
# [必选 ] zlm配置的录像路径 (跟zlm的 record.filePath 路径一致)
record: /home/wvp/ZLMediaKit/release/linux/Debug/www/record
# [可选 ] 录像保存时长(单位: 天)每天晚12点自动对过期文件执行清理
recordDay: 7
# [可选 ] 录像下载合成临时文件保存时长, 不配置默认取值recordDay(单位: 天)每天晚12点自动对过期文件执行清理
# recordTempDay: 7
# [必选 ] ffmpeg路径
ffmpeg: /usr/bin/ffmpeg
# [必选 ] ffprobe路径, 一般安装ffmpeg就会自带, 一般跟ffmpeg在同一目录,用于查询文件的信息
ffprobe: /usr/bin/ffprobe
# [可选 ] 限制 ffmpeg 合并文件使用的线程数,间接限制cpu使用率, 默认2 限制到50%
threads: 2
四、配置
级联配置
在本级平台配置上级平台IP,这样上级平台就可以操作本级平台的摄像头了。
实操:在20上加一个上级平台21,使得21能操作20的摄像头。
这样就可以在21上操作20的摄像头了:
只在下级平台操作,只有下级平台有录像,不会传到上级平台
上级平台操作下级平台,上级平台和这个下级平台都会保存录像
五、开机自启动
startup.sh
#!/bin/bash
#wvp开机自启动脚本
#如果yum install的openjdk就不用标明环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_144
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# zlm开机自启动
cd /home/wvp/ZLMediaKit/release/linux/Debug
./MediaServer -d &
# wvp-pro开机自启动
cd /home/wvp/wvp-GB28181-pro/target/
nohup java -jar wvp-pro-2.1.1-04191004.jar &
# wvp-pro-assist开机自启动
cd /home/wvp/wvp-pro-assist/target
nohup java -jar wvp-pro-assist-1.0.0-20220420044910.jar --spring.config.location=application.yml &
改IP:changeIp.sh
#!/bin/bash
#修改wvp的部署IP
if [ ! -n "$1" ]; then
echo "请输入第一个参数:要部署的wvp-pro(GB28181平台)的ip"
exit
fi
#ip=`ip a | grep -w "inet" | grep -v 127 | sed 's/^[ \t]*//g' | cut -d ' ' -f2 | awk -F"/" '{print $1}'`
#echo "获取到本机IP为:$ip"
echo "开始修改配置文件的IP~~~"
#获取之前的配置文件IP
ip_before=`cat /home/wvp/wvp-GB28181-pro/target/application.yml | grep -w "monitor-ip"| sed 's/^[ \t]*//g' | cut -d ' ' -f2`
echo "之前的配置文件IP是:"$ip_before
sed -i "s/$ip_before/$1/g" /home/wvp/ZLMediaKit/release/linux/Debug/config.ini
sed -i "s/$ip_before/$1/g" /home/wvp/wvp-GB28181-pro/target/application.yml
echo "已将wvp-pro的部署IP替换为$1。"
六、连接手机模拟摄像头 & 海康nvr的配置
参考:海康威视摄像机IPC如何配置GB28181?
海康大华宇视监控设备安防摄像头等设备注册不上来如何检查问题?
海康GB28181接入示例
海康nvr 使用28181协议配置说明
WVPPro+ZLMediaKit+大华相机推流+安卓模拟GB28181设备推流