ZLMediaKit + wvp-GB28181-pro部署(windows64位)

ZLMediaKit + wvp-GB28181-pro部署(windows64位)

  • 一、参考链接(多看wiki)
    • 1.1. ZLMediaKit
    • 1.2. wvp-GB28181-pro
    • 1.3. 参考
  • 二 、在windwos环境下部署ZLMediaKit
    • 2.1. 准备
    • 2.2. 编译libsrtp(webrtc需要)
    • 2.3. 编译ZLMediaKit
    • 2.4. 运行
  • 三、在windows环境下部署wvp-GB28181-pro
    • 3.1. 准备
    • 3.2. 编译WVP-PRO
    • 3.3. 配置
    • 3.4. 运行
    • 3.5. 添加摄像头

一、参考链接(多看wiki)

1.1. ZLMediaKit

  1. github
  2. gitee

1.2. wvp-GB28181-pro

  1. github
  2. gitee

1.3. 参考

  1. ZLMediaKit在Windows下启用WebRtc编译(64位)
  2. ZLMediaKit webRTC编译与测试
  3. JAVA-WVP+ZLMediaKit+MediaServerUI实现摄像头 GB28181推流播放录制

二 、在windwos环境下部署ZLMediaKit

2.1. 准备

software version
cmake 3.20.5
Microsoft Visual Studio 2017
openssl 1.1.1m
libsrtp 2.4.0

2.2. 编译libsrtp(webrtc需要)

  1. 需要将openssl添加到环境变量:
    在这里插入图片描述在这里插入图片描述
  2. 解压并新建build文件夹:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第1张图片
  3. 新建文件夹用于存放make install后的文件,如:D:\DevelopTools\libsrtp\srtp2。
  4. 打开cmake-gui,设置源代码和build路径,点击Configure设置生成器:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第2张图片
  5. 配置cmake选项:
  • 勾选BUILD_SHARED_LIBS,生成srtp2.dll
  • 填写CMAKE_INSTALL_PREFIX,用于存放make install后的include和lib
  • 勾选ENABLE_OPENSSL,已经将openssl放入环境变量,会自动加载openssl的库文件路径
  1. 点击Configure后,如下图所示,然后点击Generate,在build文件夹中生成libsrtp的solution:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第3张图片
  2. 在build文件夹中双击打开libsrtp2.sln,在vs2017中生成解决方案,再右键INSTALL点击生成:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第4张图片
  3. 在CMAKE_INSTALL_PREFIX配置的路径下生成以下文件:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第5张图片
  4. 最后,添加libsrtp的环境变量:
    在这里插入图片描述

2.3. 编译ZLMediaKit

  1. 下载源代码:
# 国内用户推荐从同步镜像网站gitee下载 
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
# 千万不要忘记执行这句命令
git submodule update --init

ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第6张图片

  1. 打开cmake-gui,设置源代码和新建的build文件夹路径,点击Configure配置vs2017、x64。然后填写CMAKE_INSTALL_PREFIX路径(D:\ZLMediaKit),勾选ENABLE_WEBRTC,同样会自动加载openssl的相关配置。最后点击Generate,在build文件夹中生成ZLMediaKit.sln:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第7张图片
  2. 双击打开ZLMediaKit.sln,生成解决方案,再右键INSTALL点击生成:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第8张图片
  3. 最后会在D:\DevelopTools\zlm\ZLMediaKit\release\windows64\Debug\Debug路径下生成以下文件:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第9张图片

2.4. 运行

  1. 由于没有webrtc测试前端文件,所以需要将ZLMediaKit根目录下的www文件夹,拷贝到MediaServer.exe同级目录,然后在当前目录cmd中执行MediaServer.exe,或直接双击它:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第10张图片
    Remark:启动MediaServer.exe时端口号被占用:1. 更改config.ini配置文件;2. 结束相关进程。
# 查询占用554端口号的进程(如:PID为17928)
netstat -ano|findsrt 554
# 查询PID为17928的进程名称(如:MediaServer.exe)
tasklist|find 17928
# 结束进程(可以通过命令行结束进程,也可以在任务管理器的服务中根据PID结束进程)
taskkill /pid 17928  -t  -f
  1. 在MediaServer.exe的同级目录中配置config.ini。我这里先没配置,直接运行后打开网页,会有webrtc。
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第11张图片
    不过我点进去后是乱码。
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第12张图片

三、在windows环境下部署wvp-GB28181-pro

3.1. 准备

项目运行依赖redis、jdk1.8,打包依赖git、maven、nodejs、npm。

software version
redis:参考链接 win-3.2.100
maven 3.6.3
node/npm 14.19.0/6.14.16

3.2. 编译WVP-PRO

  1. 下载源代码:
git clone https://gitee.com/pan648540858/wvp-GB28181-pro
  1. 编译静态页面:
cd wvp-GB28181-pro/web_src/
# 配置仓库,不然可能会出现网络问题导致编译报错
npm --registry=https://registry.npm.taobao.org
npm install
npm run build

编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
编译完成后在src/main/resources下出现static目录
  1. 打包项目, 生成可执行jar
cd wvp-GB28181-pro
mvn package

编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
编译完成后在target目录下出现wvp-pro-x.x-xxxxxxxx.jar,比如我的是wvp-pro-2.2.1-05201142.jar

3.3. 配置

  1. 配置application-dev.yml(在src/main/resources目录下),新生成的内容如下所示:
spring:
    # [可选]上传文件大小限制
    servlet:
        multipart:
            max-file-size: 10MB
            max-request-size: 100MB
    # REDIS数据库配置
    redis:
        # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
        host: 127.0.0.1
        # [必须修改] 端口号
        port: 6379
        # [可选] 数据库 DB
        database: 6
        # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
        password: xxxx
        # [可选] 超时时间
        timeout: 10000
        # [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置
        # mysql数据源
    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                        # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
            keepAlive: true                       # 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
            validationQuery: select 1             # 检测连接是否有效sql,要求是查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
            testWhileIdle: true                   # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
            testOnBorrow: false                   # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
            testOnReturn: false                   # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
            poolPreparedStatements: false         # 是否開啟PSCache,並且指定每個連線上PSCache的大小
            timeBetweenEvictionRunsMillis: 60000  # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒
            minEvictableIdleTimeMillis: 300000    # 配置一個連線在池中最小生存的時間,單位是毫秒
            filters: stat,wall,slf4j             # 配置监控统计拦截的filters,监控统计用的filter:sta, 日志用的filter:log4j, 防御sql注入的filter:wall
            useGlobalDataSourceStat: true         # 合并多个DruidDataSource的监控数据
            # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
            connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000
            #stat-view-servlet.url-pattern: /admin/druid/*

#[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
    port: 18080

# 作为28181服务器的配置
sip:
    # [必须修改] 本机的IP
    ip: 10.16.xxx.xxx
    # [可选] 28181服务监听的端口
    port: 5060
    # 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
    # 后两位为行业编码,定义参照附录D.3
    # 3701020049标识山东济南历下区 信息行业接入
    # [可选]
    domain: 4401020049
    # [可选]
    id: 44010200492000000001
    # [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
    password: admin123

#zlm 默认服务器配置
media:
    id: j6i8Pv5SnnLyuoib
    # [必须修改] zlm服务器的内网IP
    ip: 10.16.xxx.xxx
    # [必须修改] zlm服务器的http.port
    http-port: xxxx
    # [可选] zlm服务器的hook.admin_params=secret
    secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
    # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
    rtp:
        # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
        enable: true
        # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
        port-range: 30000,30500 # 端口范围
        # [可选] 国标级联在此范围内选择端口发送媒体流,
        send-port-range: 30000,30500 # 端口范围
    # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用
    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数据库中以查询的方式建表:
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第13张图片ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第14张图片
  • media.id要与zlm的config.ini中[general]下的mediaServerId一致,比如我的是j9awLgYX8c7TpGN1。

3.4. 运行

  1. 启动ZLM
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第15张图片
  2. 运行WVP:1. cd cd wvp-GB28181-pro/target; java -jar wvp-pro-*.jar;2. 直接用idea运行
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第16张图片
  3. 访问web:http://ip:port
    比如我部署的服务ip为10.16.31.250, server.port为18080, 那么访问地址为http://10.16.31.250:108080, 会自动跳转到登陆页,默认用户名:admin, 密码:admin。
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第17张图片
  4. 首页
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第18张图片

3.5. 添加摄像头

  1. 配置海康IPC GB28181协议传输
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第19张图片

  2. 注册成功
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第20张图片
    在这里插入图片描述

  3. 实时监控
    在这里插入图片描述

  4. 拉流代理
    ZLMediaKit + wvp-GB28181-pro部署(windows64位)_第21张图片

你可能感兴趣的:(java,服务器,c++)