Administrator
发布于 2023-05-05 / 236 阅读
0
0

Wvp-pro & ZLMediaKit & Wvp-pro-assist

开源项目:https://github.com/648540858/wvp-GB28181-pro

https://blog.csdn.net/qq_45384482/article/details/118074607

Doc

refer to :https://doc.wvp-pro.cn/#/

开启端口

systemctl start firewalld.service 

firewall-cmd --state

firewall-cmd --add-port=18080/tcp --permanent
firewall-cmd --add-port=5060/udp  --add-port=5060/tcp --permanent
firewall-cmd --add-port=8090/tcp --permanent

firewall-cmd --add-port=30000-30500/tcp --permanent

firewall-cmd --add-port=30000-30500/udp --permanent

firewall-cmd --add-port=18081/tcp --add-port=18081/udp --permanent
firewall-cmd --reload

编译安装ZLMediaKit

refer to : https://github.com/ZLMediaKit/ZLMediaKit/wiki/快速开始

获取代码

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

安装编译器

yum -y install gcc
yum -y install gcc-c++

安装cmake

yum -y install cmake

安装依赖库openssl

# 安装openssl
sudo dnf install openssl
openssl version

安装依赖库ffmpeg

refer to : https://blog.csdn.net/qq_16504067/article/details/129405716

https://juejin.cn/post/7224393585247191096

wget http://www.ffmpeg.org/releases/ffmpeg-5.0.tar.gz

tar -zxvf ffmpeg-5.0.tar.gz


cd ffmpeg-5.0/

mkdir /usr/local/ffmpeg

yum install yasm
# 如果上面安装yasm的命令,不可行,执行下面的命令  refer to :https://rockylinux.pkgs.org/8/rockylinux-devel-x86_64/yasm-1.3.0-7.el8.x86_64.rpm.html
dnf --enablerepo=devel install yasm

./configure --prefix=/usr/local/ffmpeg

make

make install



#利用vi编辑环境变量
vim /etc/profile

#在最后位置处添加环境变量,点击i进入编辑模式,esc键可退出编辑模式
export PATH=$PATH:/usr/local/ffmpeg/bin

#刷新资源,使其生效
source /etc/profile

# 查看版本
[root@VM-0-14-opencloudos ffmpeg]# ffmpeg -version
ffmpeg version 5.0 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 8 (GCC)
configuration: --prefix=/usr/local/ffmpeg
libavutil      57. 17.100 / 57. 17.100
libavcodec     59. 18.100 / 59. 18.100
libavformat    59. 16.100 / 59. 16.100
libavdevice    59.  4.100 / 59.  4.100
libavfilter     8. 24.100 /  8. 24.100
libswscale      6.  4.100 /  6.  4.100
libswresample   4.  3.100 /  4.  3.100

上面介绍的是下载ffmpeg,编译安装,还可以直接使用dnf 安装,如下:

refer to : https://citizix.com/how-to-install-ffmpeg-on-rocky-linux-alma-linux-8/

https://linuxstoney.com/how-to-install-and-use-ffmpeg-in-rocky-linux-8/

构建和编译ZLMediaKit

cd /opt/ZLMediaKit/Source/ZLMediaKit
mkdir build
cd build
cmake ..
make -j4

运行ZLMediaKit

cd /opt/ZLMediaKit/Source/ZLMediaKit/release/linux/Debug

vim config.ini

修改config.ini以下几项

# mediaServerId=your_server_id
mediaServerId=FQ3TF8yT83wh5Wvz
port=8090
admin_params=secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
nohup ./MediaServer -d -m 3 &

MediaServer 的启动参数如下

(base) xugaoxiang@1070Ti:~/workshop/github/ZLMediaKit/release/linux$ ./MediaServer -h
  -h  --help     无参  默认:null                                                                   选填  打印此信息
  -d  --daemon   无参  默认:null                                                                   选填  是否以Daemon方式启动
  -l  --level    有参  默认:0                                                                      选填  日志等级,LTrace~LError(0~4)
  -m  --max_day  有参  默认:7                                                                      选填  日志最多保存天数
  -c  --config   有参  默认:/home/xugaoxiang/workshop/github/ZLMediaKit/release/linux/config.ini   选填  配置文件路径
  -s  --ssl      有参  默认:/home/xugaoxiang/workshop/github/ZLMediaKit/release/linux/default.pem  选填  ssl证书文件或文件夹,支持p12/pem类型
  -t  --threads  有参  默认:4                                                                      选填  启动事件触发线程数
  -v  --version  无参  默认:null                                                                   选填  显示版本号

参数的含义,原作者非常用心,在帮助信息里写的很清楚,点个赞

ZLMediaKit配置文件详解

refer to : https://juejin.cn/post/7012816470061105165

安装wvp-pro

初始化Mysql数据库

CREATE DATABASE wvp DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

修改配置文件

application-dev.yml 内容如下:

spring:
  # [可选]上传文件大小限制
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB
  # REDIS数据库配置
  redis:
    # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
    host: 1.13.16.140
    # [必须修改] 端口号
    port: 6379
    # [可选] 数据库 DB
    database: 6
    # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
    password: 123456
    # [可选] 超时时间
    timeout: 10000
    # mysql数据源
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://1.13.16.140:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true
    username: root
    password: es0s1oJvm@Mysql
    hikari:
      connection-timeout: 20000             # 是客户端等待连接池连接的最大毫秒数
      initialSize: 10                       # 连接池初始化连接数
      maximum-pool-size: 200                # 连接池最大连接数
      minimum-idle: 5                       # 连接池最小空闲连接数
      idle-timeout: 300000                  # 允许连接在连接池中空闲的最长时间(以毫秒为单位)
      max-lifetime: 1200000                 # 是池中连接关闭后的最长生命周期(以毫秒为单位)


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

# 作为28181服务器的配置
sip:
  # [必须修改] 本机的IP,对应你的网卡,监听什么ip就是使用什么网卡,
  # 如果要监听多张网卡,可以使用逗号分隔多个IP, 例如: 192.168.1.4,10.0.0.4
  # 如果不明白,就使用0.0.0.0,大部分情况都是可以的
  # 请不要使用127.0.0.1,任何包括localhost在内的域名都是不可以的。
  ip: 0.0.0.0
  # [可选] 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: FQ3TF8yT83wh5Wvz
  # [必须修改] zlm服务器的内网IP
  ip: 10.0.0.14
  # [必须修改] zlm服务器的http.port
  http-port: 8090
  # [可选] 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

部署wvp-pro

mvn clean
mvn package

rm -rf /opt/Wvp/wvp-pro-*.jar
cp /opt/Wvp/Source/wvp-GB28181-pro/target/wvp-pro-*.jar /opt/Wvp/

nohup java -jar wvp-pro-*.jar &



-----------------------------------
cp /opt/wvp-GB28181-pro/target/wvp-pro-*.jar /opt/WvpExe/

nohup java -jar wvp-pro-*.jar &

FAQ

1.启动报错如下:

2023-04-26 20:41:33.773 ERROR --- SipLayer : [Sip Server] tcp://1.13.175.185:5060 SIP服务启动失败,请检查端口是否被占用或者ip是否正确
2023-04-26 20:41:33.782 ERROR --- SipLayer : [Sip Server] udp://1.13.175.185:5060 SIP服务启动失败,请检查端口是否被占用或者ip是否正确

解决方案:https://github.com/648540858/wvp-GB28181-pro/issues/826

支持录像

refer to : https://gitee.com/pan648540858/wvp-pro-assist

https://github.com/648540858/wvp-GB28181-pro/wiki/云端录像功能部署与使用#云端录像提供的功能

git clone https://gitee.com/pan648540858/wvp-pro-assist.git

cd wvp-pro-assist




修改配置文件

application.yml 的active 设置为dev

spring:
  profiles:
    active: dev

application-dev.yml内容修改如下:

spring:
    # REDIS数据库配置
    redis:
        # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
        host: 1.13.16.140
        # [必须修改] 端口号
        port: 6379
        # [可选] 数据库 DB
        database: 8
        # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
        password: 123456
        # [可选] 超时时间
        timeout: 10000

# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
    port: 18081
    # [可选] HTTPS配置, 默认不开启
    ssl:
        # [可选] 是否开启HTTPS访问
        enabled: false
        # [可选] 证书文件路径,放置在resource/目录下即可,修改xxx为文件名
        key-store: classpath:xxx.jks
        # [可选] 证书密码
        key-password: password
        # [可选] 证书类型, 默认为jks,根据实际修改
        key-store-type: JKS

# [根据业务需求配置]
userSettings:
    # [可选 ] zlm配置的录像路径,
    record: /opt/Wvp-pro-assist/camera/record/
    # [可选 ] 录像保存时长(单位: 天)每天晚12点自动对过期文件执行清理
    recordDay: 7
    # [可选 ] 录像下载合成临时文件保存时长, 不配置默认取值recordDay(单位: 天)每天晚12点自动对过期文件执行清理
    # recordTempDay: 7
    # [必选 ] ffmpeg路径
    ffmpeg: /usr/local/ffmpeg/bin/ffmpeg
    # [必选 ] ffprobe路径, 一般安装ffmpeg就会自带, 一般跟ffmpeg在同一目录,用于查询文件的信息
    ffprobe: /usr/local/ffmpeg/bin/ffprobe
    # [可选 ] 限制 ffmpeg 合并文件使用的线程数,间接限制cpu使用率, 默认2 限制到50%
    threads: 2
    id: 332211

swagger-ui:

# [可选] 日志配置, 一般不需要改
logging:
    file:
        name: logs/wvp.log
        max-history: 30
        max-size: 10MB
        total-size-cap: 300MB
    level:
        root: WARN
        top:
            panll:
                assist: info

部署wvp-pro-assist

mvn clean
mvn package

rm -rf /opt/Wvp-pro-assist/wvp-pro-assist-*.jar
cp /opt/Wvp-pro-assist/wvp-pro-assist/target/wvp-pro-assist-*.jar /opt/Wvp-pro-assist

cd /opt/Wvp-pro-assist

nohup java -jar wvp-pro-assist-*.jar &

评论