ZLMediaKit + wvp-GB28181-pro部署(windows64位)
一、参考链接(多看wiki)
1.1. ZLMediaKit
- github
- gitee
1.2. wvp-GB28181-pro
- github
- gitee
1.3. 参考
- ZLMediaKit在Windows下启用WebRtc编译(64位)
- ZLMediaKit webRTC编译与测试
- JAVA-WVP+ZLMediaKit+MediaServerUI实现摄像头 GB28181推流播放录制
二 、在windwos环境下部署ZLMediaKit
2.1. 准备
2.2. 编译libsrtp(webrtc需要)
- 需要将openssl添加到环境变量:
- 解压并新建build文件夹:
- 新建文件夹用于存放make install后的文件,如:D:\DevelopTools\libsrtp\srtp2。
- 打开cmake-gui,设置源代码和build路径,点击Configure设置生成器:
- 配置cmake选项:
- 勾选BUILD_SHARED_LIBS,生成srtp2.dll
- 填写CMAKE_INSTALL_PREFIX,用于存放make install后的include和lib
- 勾选ENABLE_OPENSSL,已经将openssl放入环境变量,会自动加载openssl的库文件路径
- 点击Configure后,如下图所示,然后点击Generate,在build文件夹中生成libsrtp的solution:
- 在build文件夹中双击打开libsrtp2.sln,在vs2017中生成解决方案,再右键INSTALL点击生成:
- 在CMAKE_INSTALL_PREFIX配置的路径下生成以下文件:
- 最后,添加libsrtp的环境变量:
2.3. 编译ZLMediaKit
- 下载源代码:
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
git submodule update --init
- 打开cmake-gui,设置源代码和新建的build文件夹路径,点击Configure配置vs2017、x64。然后填写CMAKE_INSTALL_PREFIX路径(D:\ZLMediaKit),勾选ENABLE_WEBRTC,同样会自动加载openssl的相关配置。最后点击Generate,在build文件夹中生成ZLMediaKit.sln:
- 双击打开ZLMediaKit.sln,生成解决方案,再右键INSTALL点击生成:
- 最后会在D:\DevelopTools\zlm\ZLMediaKit\release\windows64\Debug\Debug路径下生成以下文件:
2.4. 运行
- 由于没有webrtc测试前端文件,所以需要将ZLMediaKit根目录下的www文件夹,拷贝到MediaServer.exe同级目录,然后在当前目录cmd中执行MediaServer.exe,或直接双击它:
Remark:启动MediaServer.exe时端口号被占用:1. 更改config.ini配置文件;2. 结束相关进程。
netstat -ano|findsrt 554
tasklist|find 17928
taskkill /pid 17928 -t -f
- 在MediaServer.exe的同级目录中配置config.ini。我这里先没配置,直接运行后打开网页,会有webrtc,但是点击它程序会中止,不知道为啥。
三、在windows环境下部署wvp-GB28181-pro
3.1. 准备
项目运行依赖redis、jdk1.8,打包依赖git、maven、nodejs、npm。
3.2. 编译WVP-PRO
- 下载源代码:
git clone https://gitee.com/pan648540858/wvp-GB28181-pro
- 编译静态页面:
cd wvp-GB28181-pro/web_src/
npm --registry=https://registry.npm.taobao.org
npm install
npm run build
编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
编译完成后在src/main/resources下出现static目录
- 打包项目, 生成可执行jar
cd wvp-GB28181-pro
mvn package
编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
编译完成后在target目录下出现wvp-pro-x.x-xxxxxxxx.jar,比如我的是wvp-pro-2.0.2-03190920.jar
3.3. 配置
- 配置application-dev.yml(在src/main/resources目录下),新生成的内容如下所示:
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
redis:
host: 127.0.0.1
port: 6379
database: 6
password: xxxx
timeout: 10000
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: xxxx
password: xxxx
druid:
initialSize: 10
maxActive: 200
minIdle: 5
maxWait: 60000
keepAlive: true
validationQuery: select 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: false
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
filters: stat,wall,slf4j
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000
server:
port: 18080
sip:
ip: 10.16.xxx.xxx
port: 5060
domain: 3402000000
id: 34020000002000000001
password: admin123
media:
id: fTjjaDliH9EQ9N50
ip: 10.16.xxx.xxx
http-port: xxxx
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
rtp:
enable: true
port-range: 30000,30500
send-port-range: 30000,30500
record-assist-port: 18081
logging:
config: classpath:logback-spring-local.xml
version:
version: "@project.version@"
description: "@project.description@"
artifact-id: "@project.artifactId@"
Remark:
- 记得开启redis服务。
- 先在mysql中新建wvp数据库,然后建表:1. 运行sql目录下的mysql.sql(可能会报错);2. 或复制mysql.sql中的内容,在wvp数据库中以查询的方式建表:
- media.id要与zlm的config.ini中[general]下的mediaServerId一致,比如我的是fTjjaDliH9EQ9N50。
3.4. 运行
- 启动ZLM
- 运行WVP:1. cd cd wvp-GB28181-pro/target; java -jar wvp-pro-*.jar;2. 直接用idea运行
- 访问web:http://ip:port
比如我部署的服务ip为10.16.31.250, server.port为18080, 那么访问地址为http://10.16.31.250:108080, 会自动跳转到登陆页,默认用户名:admin, 密码:admin。 - 首页
3.5. 添加摄像头
-
配置海康IPC GB28181协议传输 -
注册成功 -
实时监控 -
拉流代理
|