目录
目标效果:
WVP-GB28181-PRO公网部署(ubuntu)+ZLM+WVP部署在同一个服务器 和问题排查点 ,提供给大家做参考,跟着编译部署一遍基本没问题。内容比较长。
简介:
WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将不带国标功能的摄像机/直播流/直播推流转发到其他国标平台。
流媒体服务基于@夏楚 ZLMediaKit https://github.com/ZLMediaKit/ZLMediaKit
播放器使用@dexter jessibuca https://github.com/langhuihui/jessibuca/tree/v3
前端页面基于@Kyle MediaServerUI https://gitee.com/kkkkk5G/MediaServerUI 进行修改
1:查看操作系统信息
lsb_release -a
root@hecs-76136:/mnt/wvp28181pro# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
2:安装java环境
apt-get install openjdk-11-jre git maven nodejs npm
3:数据库
sudo apt update
sudo apt install mysql-server mysql-client
验证数据库安装 :
客户端:mysql -V
服务端:mysql -u root -p
输入密码时直接回车 后输入:mysql> SELECT VERSION();
4:安装redis
sudo apt install redis-server
#启动
redis-server
#查看Redis是否正常
systemctl status redis
redis-cli #输入ping返回PONG表示正常
root@hecs-76136:/mnt/wvp28181pro# redis-server
1591727:C 22 Nov 2024 15:49:36.326 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1591727:C 22 Nov 2024 15:49:36.326 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=1591727, just started
1591727:C 22 Nov 2024 15:49:36.326 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1591727:M 22 Nov 2024 15:49:36.327 # Could not create server TCP listening socket *:6379: bind: Address already in use
root@hecs-76136:/mnt/wvp28181pro# systemctl status redis
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-11-22 15:46:29 CST; 3min 19s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Main PID: 1590969 (redis-server)
Tasks: 4 (limit: 4612)
Memory: 1.9M
CGroup: /system.slice/redis-server.service
└─1590969 /usr/bin/redis-server 127.0.0.1:6379
Nov 22 15:46:29 hecs-76136 systemd[1]: Starting Advanced key-value store...
Nov 22 15:46:29 hecs-76136 systemd[1]: redis-server.service: Can't open PID file /run/redis/redis-server.pid (yet?) after start: Operation not permitted
Nov 22 15:46:29 hecs-76136 systemd[1]: Started Advanced key-value store.
root@hecs-76136:/mnt/wvp28181pro# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
5:安装编译器
sudo apt install build-essential
6:安装cmake
sudo apt update
sudo apt install cmake
cmake --version
7:安装依赖库
#除了openssl,其他其实都可以不安装
sudo apt install -y libssl-dev
sudo apt install -y libsdl1.2-dev
sudo apt install -y libavcodec-dev
sudo apt install -y libavutil-dev
sudo apt install -y ffmpeg
8:编译ZLMediaKit
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
git submodule update --init
#编译
mkdir build
cd build
cmake ..
make -j4
9:编译wvp-GB28181-pro
git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
#1.编译前端页面
cd wvp-GB28181-pro/web_src/
npm --registry=https://registry.npmmirror.com install
npm run build
#编译完成后会生成目录: wvp-GB28181-pro/src/main/resources/static
#2.生成可执行jar
cd wvp-GB28181-pro
mvn package
#编译后生成文件: wvp-GB28181-pro/target/wvp-pro-2.7.18-11220820.jar
#3.生成war
cd wvp-GB28181-pro
mvn package -P war
#编译后生成文件: wvp-GB28181-pro/target/wvp-pro-2.7.18-11220828.war
10:编译结果证明
11:配置
两个配置文件:
1:WVP-PRO配置文件
2:ZLMediaKit配置文件
11.1:WVP-PRO配置文件
./src/main/resources/application.yml
./target/classes/application.yml
./target/wvp-pro-2.7.0-01260312/WEB-INF/classes/application.yml
./src/main/resources/all-application.yml
./target/classes/all-application.yml
./target/wvp-pro-2.7.0-01260312/WEB-INF/classes/all-application.yml
all-application.yml,application.yml使用哪一组都可以,这里使用application.yml进行修改.最近的版本里没有all-application.yml了。直接使用上面的application.yml一样的。
下面的配置是在application.yml 中配置的
11.1.1 Mysql数据库配置
这里有两点注意:
1:share数据库删除
2: master数据库wvp2需要修改为wvp,必须要和建立的数据库名称对应
# [必选] jdbc数据库配置
datasource:
# mysql配置
dynamic:
primary: master
datasource:
master:
type: com.zaxxer.hikari.HikariDataSource
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&allowMultiQueries=true
username: root
password: root123
hikari:
connection-timeout: 20000 # 是客户端等待连接池连接的最大毫秒数
initialSize: 50 # 连接池初始化连接数
maximum-pool-size: 200 # 连接池最大连接数
minimum-idle: 10 # 连接池最小空闲连接数
idle-timeout: 300000 # 允许连接在连接池中空闲的最长时间(以毫秒为单位)
max-lifetime: 1200000 # 是池中连接关闭后的最长生命周期(以毫秒为单位)
中间插下操作=》接下来在服务器上进去MySQL设置 在要部署的服务器中设置
#查看数据库状态
systemctl status mysql
#进入mysql
mysql -u root -
#mysql更改
use mysql;
update user set host='%' where user= 'root';
flush privileges;
select host,user,plugin from user where user='root';
#更改root用户密码为root123,参考上面的配置
alter user 'root'@'%' identified with mysql_native_password by 'root123';
flush privileges;
grant all on *.* to 'root'@'%';
flush privileges;
#wvp数据库修改,需要和url: jdbc:mysql://127.0.0.1:3306/wvp?对应
#初始化-mysql-2.7.3.sql是源代码中对应路径下附带的初始化sql ,替换路径就行
create DATABASE wvp;
use wvp;
source /mnt/wvp28181pro/wvp-GB28181-pro/数据库/2.7.3/初始化-mysql-2.7.3.sql
flush privileges;
Exit
11.1.2 REDIS数据库配置
直接按照第4步骤安装就行,没有设置密码的话,wvp里的redis配置,注意密码要为空
11.1.3 配置服务启动端口
# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
port: 18080
11.1.3 配置28181相关信息
sip:
#SIP信令服务器IP地址
ip: 你的公网ip
port: 8116
domain: 3204020043
id: 32040200432162000001
password: 456123
11.1.4 配置ZLMediaKit连接信息
#zlm 默认服务器配置
media:
# ZLMediaKit的服务ID,必须配置
id: htketiannanpro
# [必须修改] zlm服务器的内网IP,sdp-ip与stream-ip使用默认值的情况下,这里不要使用127.0.0.1/0.0.0.0
ip: 你的公网ip
# [必须修改] zlm服务器的http.port
http-port: 80
# [可选] 返回流地址时的ip,置空使用 media.ip
#stream-ip:
# [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip
#sdp-ip:
# [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
#hook-ip:
# [可选] zlm服务器的http.sslport, 置空使用zlm配置文件配置
#http-ssl-port:
# [可选] zlm服务器的rtmp.port, 置空使用zlm配置文件配置
#rtmp-port:
# [可选] zlm服务器的rtmp.sslport, 置空使用zlm配置文件配置
#rtmp-ssl-port:
# [可选] zlm服务器的 rtp_proxy.port, 置空使用zlm配置文件配置
#rtp-proxy-port:
# [可选] zlm服务器的 rtsp.port, 置空使用zlm配置文件配置
#rtsp-port:
# [可选] zlm服务器的 rtsp.sslport, 置空使用zlm配置文件配置
#rtsp-ssl-port:
# [可选] zlm服务器的hook.admin_params=secret
secret: BkPj2ca6QPpY5RccREJq4kAOu9ZEt70x
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
rtp:
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
enable: true
# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
port-range: 40000,45000 # 端口范围
# [可选] 国标级联在此范围内选择端口发送媒体流,请不要与收流端口范围重合
send-port-range: 35002,35006 # 端口范围
***配置ZLMediaKit连接信息注意点**:
1:id必须和12.2.ZLM配置中general.mediaServerId设置一致
2: ip必须正确设置
3:http-port和12.2.ZLM配置中http.port相同
4:secret和12.2.ZLM配置中api.secret相同
5:rtp和12.2.ZLM配置配置中rtp_proxy.rtp_proxy相同
11.1.6个性化定制信息配置
# [根据业务需求配置]
user-settings:
# 点播/录像回放 等待超时时间,单位:毫秒
play-timeout: 180000
# [可选] 自动点播, 使用固定流地址进行播放时,如果未点播则自动进行点播, 需要rtp.enable=true
auto-apply-play: true
# 推流直播是否录制
record-push-live: false
# 国标是否录制
record-sip: false
# 国标点播 按需拉流, true:有人观看拉流,无人观看释放, false:拉起后不自动释放
stream-on-demand: true
12 ZLMediaKit配置文件
12.1 使用
./release/linux/Debug/config.ini
./conf/config.ini
#默认使用./release/linux/Debug/config.ini
#修改并保存配置文件后,运行如下命令就能使ZLMediaKit热加载配置文件,而不必先关闭服务然后再开启
killall -1 MediaServer`
12.2 ZLM配置
[api]
#一些比较敏感的http api在访问时需要提供secret,否则无权限调用
#如果是通过127.0.0.1访问,那么可以不提供secret
secret=BkPj2ca6QPpY5RccREJq4kAOu9ZEt70x
[general]
#服务器唯一id,用于触发hook时区别是哪台服务器
mediaServerId=htketiannanpro
[http]
#http服务器监听端口
port=80
[rtp_proxy]
#随机端口范围,最少确保36个端口
#该范围同时限制rtsp服务器udp端口范围
port_range=40000-45000
13:相关排查指令
#我现在 在wvp下的websrc/config/index中http请求的127.0.0.1改成 公网ip.web部署在公网,需要公网打开。
curl ipinfo.io/ip #查看公网地址
sudo iptables -L -n #查看防护墙 端口规则 防火墙会会导致不通
sudo netstat -tulnp | grep 18080 #查看端口被哪个服务监听 端口未开放 会导致不通
#允许TCP和UDP流量通过18080端口的iptables规则
sudo iptables -A INPUT -p udp --dport 18080 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 18080 -j ACCEPT
df #查看磁盘占用情况 磁盘满了 会运行报错,或者数据库相关错误
du -sh /* | sort -hr #查看哪个盘占用的内存最多
示例配置文件:
Web前端设置,公网部署时
运行过程的问题报错排查
排查1:
这个主要检查下
wvp 和 zlm下面配置要保持一致, 每一个都会导致wvp zlm的联通出问题
排查2:
这种数据库错误要检查下 mysql数据源中datasource:的数据库用户密码是否正确
排查3:
碰到这种错误,要检查 redis这块的部分设置
排查4:
碰到编译或者运行错误的,注意看提示:比如no space 这种 就是磁盘满了导致的,这时使用
df #查看磁盘占用情况
du -sh /* | sort -hr #查看哪个盘占用的内存最多
排查5:
运行失败时还会因为mysql未启动 ,或者提示 初始化数据失败时,基本都是mysql未启动或者 因为内存满了导致mysql未启动导致的
排查6:
配置中 media的ip、 id 、wan_ip 、 sdp_ip、 wan_ip要正确设置,公网的话 要设置对
排查7:
运行后报错,和 Redis有关
检查redis运行状态,和运行测试后 执行ping 返回 PONG说明正常
通过df 发现磁盘满了,无法写入RDB.这个是定时写入快照备份的,太消耗空间,这里取消关闭。
打开/etc/redis/redis.conf
配置文件,将类似 save <seconds> <changes>的内容 删除或者#屏蔽掉。
执行systemctl restart redis
重启生效,如果一直在重启中 不返回可以直接kill掉: sudo pkill -9 redis-server
http api access-token web上抓前端包得到 例如我的是如下!
这里在web 前端界面上 有个在线文档,上面测试接口时需要。
JhbGciOiJSUzI1NiIsImtpZCI6IjNlNzk2NDZjNGRiYzQwODM4M2E5ZWVkMDlmMmI4NWFlIn0.eyJqdGkiOiJ3VGhsUDJ1M0IzR3RJbzV1bGlJbmVRIiwiaWF0IjoxNzMyNTE5ODA2LCJleHAiOjE3MzUxMTE4MDYsIm5iZiI6MTczMjUxOTgwNiwic3ViIjoibG9naW4iLCJhdWQiOiJBdWRpZW5jZSIsInVzZXJOYW1lIjoiYWRtaW4ifQ.aF2_Xd-_tYhn2KQf7UVF_XeQF3fRlRgSAgctlIw-GOC9oIsaUKXtUZL8ONqsewtaZxCrVuWgOnJNiXVViPnuNi3f3MDGOQ2xCIvDLpLCABekOK7ryCXMEkJ2F7ccIEAW_HBxOmxq5iqmsOaEJX8ofqvrj9dWmo8CbLTWYtF_FK5qlRXR3BmRYaA01m7AehzqulDl60YmnRhlf13sTLwYKunSA_Pvh4gNdGXelAkx-zoEPgVHpzKXDoG9vYp1KZWXvIP2MTIzKrIZKr6_8G2-4KdtDD7ZCGV5-KH107kDJArJXTDPej8w23A14ogFM6vJJF8AyAhtkpXMivdgmam
最后的application.yml配置参考:
spring:
# 设置接口超时时间
mvc:
async:
request-timeout: 20000
thymeleaf:
cache: false
# [可选]上传文件大小限制
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
cache:
type: redis
# REDIS数据库配置
redis:
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
host: 127.0.0.1
# [必须修改] 端口号
port: 6379
# [可选] 数据库 DB
database: 7
# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
password:
# [可选] 超时时间
timeout: 10000
# mysql数据源
datasource:
dynamic:
primary: master
datasource:
master:
type: com.zaxxer.hikari.HikariDataSource
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&allowMultiQueries=true
username: root
password: root123
hikari:
connection-timeout: 20000 # 是客户端等待连接池连接的最大毫秒数
initialSize: 50 # 连接池初始化连接数
maximum-pool-size: 200 # 连接池最大连接数
minimum-idle: 10 # 连接池最小空闲连接数
idle-timeout: 300000 # 允许连接在连接池中空闲的最长时间(以毫秒为单位)
max-lifetime: 1200000 # 是池中连接关闭后的最长生命周期(以毫秒为单位)
#[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
port: 18080
# [可选] HTTPS配置, 默认不开启
ssl:
# [可选] 是否开启HTTPS访问
enabled: false
# [可选] 证书文件路径,放置在resource/目录下即可,修改xxx为文件名
key-store: classpath:test.monitor.89iot.cn.jks
# [可选] 证书密码
key-store-password: gpf64qmw
# [可选] 证书类型, 默认为jks,根据实际修改
key-store-type: JKS
# 作为28181服务器的配置
sip:
# [可选] 28181服务监听的端口
port: 8116
# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
# 后两位为行业编码,定义参照附录D.3
# 3701020049标识山东济南历下区 信息行业接入
# [可选]
domain: 3204020043
# [可选]
id: 32040200432162000001
# [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
password: 456123
# 是否存储alarm信息
alarm: false
#zlm 默认服务器配置
media:
id: htketiannanpro
# [必须修改] zlm服务器的内网IP
ip: 192.168.0.174
# [可选] 有公网IP就配置公网IP, 不可用域名
wan_ip: 你的公网ip
stream-ip: 你的公网ip
# [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip
sdp-ip: 你的公网ip
# [可选] zlm服务器访问WVP所使用的IP, 默认使用127.0.0.1,zlm和wvp没有部署在同一台服务器时必须配置
hook-ip: 192.168.0.174
# [必须修改] zlm服务器的http.port
http-port: 80
# [必选选] zlm服务器的hook.admin_params=secret
secret: BkPj2ca6QPpY5RccREJq4kAOu9ZEt70x
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
rtp:
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
enable: true
# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
port-range: 40000,45000 # 端口范围
# [可选] 国标级联在此范围内选择端口发送媒体流,
send-port-range: 50000,55000 # 端口范围
# [根据业务需求配置]
user-settings:
# 点播/录像回放 等待超时时间,单位:毫秒
play-timeout: 180000
# [可选] 自动点播, 使用固定流地址进行播放时,如果未点播则自动进行点播, 需要rtp.enable=true
auto-apply-play: true
# 推流直播是否录制
record-push-live: true #录播需要注意 会占用内存 需要策略处理
# 国标是否录制
record-sip: true #录播需要注意 会占用内存 需要策略处理
# 国标点播 按需拉流, true:有人观看拉流,无人观看释放, false:拉起后不自动释放
stream-on-demand: true
14:docker部署
14.1 docker 安装
Docker 是一个开源平台,用于开发、交付和运行应用程序。它允许开发者打包他们的应用以及应用的依赖包到一个轻量级、可移植的容器中,然后发布到任何支持 Docker 的平台上。
sudo apt-get update #更新软件包
sudo apt-get install ca-certificates curl gnupg lsb-release #安装docker依赖
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
#添加docker密钥
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#添加阿里云docker软件源
apt-get install docker-ce docker-ce-cli containerd.i
#安装docker
//-------
#配置用户组(非必须操作,此操作目的是为了以后执行docker命令时无需输入sudo密码)
sudo usermod -aG docker $USER
sudo reboot
//---------
systemctl start docker #启动Docker服务
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
#apt-transport-https:允许APT通过HTTPS获取软件包。
#a-certificates:包含证书权威机构的证书,用于验证HTTPS连接。
#curl:一个命令行工具,用于传输数据,常用于下载文件。
#software-properties-common:包含添加和管理软件源的工具。 -y参数表示自动回答“yes”来确认安#装,无需手动干预。
service docker restart #重启Docker服务
sudo docker run hello-world
#用于测试Docker是否正确安装。docker run命令用于运行一个新的容器实例。
#hello-world是一个特殊的Docker镜像,它被设计为Docker安装后的测试镜像。当你运行这个命令#时,Docker会从Docker Hub下载hello-world镜像(如果本地没有的话),并运行它。
#如果Docker安装正确,并且你的系统可以连接到Docker Hub,这个命令会输出一条欢迎消息,并#显示Docker的版本信息。如果出错 没关系,因为没有安装image,运行下面语句 有版本号返回就成功了
root@hecs-76136:~# docker --version
Docker version 27.3.1, build ce12230
root@hecs-76136:~#
sudo docker images #查看镜像,有ID之类就是安装的,一行就是没安装,我这里就是没安装
root@hecs-76136:~# sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
root@hecs-76136:~#
14.2 Docker Compose 安装
Docker Copose 是 Docker 官方支持的一个工具,用于定义和运行多容器 Docker 应用程序。它允许用户通过一个 YAML 文件(docker-compose.yml)来配置应用程序的服务,然后使用一个简单的命令 docker-compose up 来启动所有服务。
Docker Compose 是 Docker 生态系统的一部分,但它不是 Docker 的核心组件,需要单独安装
sudo apt-get update
sudo apt-get install -y docker-compose
docker-compose --version
14.3 编译wvp docker
wvp使用的docker-compose.yml配置启动=》wvp/Dockfile的方式
yml方式需要使用Docker Compose。
进入到/mnt/wvp28181pro/wvp-GB28181-pro/docker目录下 也就是docker-compose.yml所在目录
docker-compose up -d #运行docker-compose.yml 这时会因为dockerhub网站在墙外的原因,导致提示网络某个链接 超时需要替换软件源
增加Docker的镜像源配置文件 /etc/docker/daemon.json
如果没有配置过镜像源该文件默认是不存在的
sudo vi /etc/docker/daemon.json
在其中增加如下内容注意url正确,且末尾不可有空格
{
"registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"]
}
重新加载 Docker 配置并重启 Docker 服务:
sudo systemctl daemon-reloadsudo
systemctl restart docker
3、查看配置是否生效
docker info|grep Mirrors -A 1
这里因为网络问题失败了,目前我的云服务器 暂时没法搞这个,docker部署暂时不使用,后面会在更新
比较有用的网址参考
彻底解决docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled 报错-CSDN博客
在Ubuntu系统中安装Docker以及添加国内镜像源_ubuntu docker添加镜像源-CSDN博客
15:编译方式部署-守护进程
sudo vi /etc/systemd/system/wvp-pro.service#创建 systemd 服务文件
[Unit]
Description=WVP Service
After=network.target
[Service]
Type=forking
User=root
ExecStart=/usr/bin/java -jar /mnt/wvp28181pro/wvp-GB28181-pro/target/wvp-pro-2.7.3-11260736.jar
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
sudo systemctl enable wvp-pro.service #启用新创建的服务,使其在系统启动时自动运行
sudo systemctl start wvp-pro.service
sudo systemctl status wvp-pro.service
sudo vi /etc/systemd/system/wvp-zlm.service
[Unit]
Description=ZLMediaKit MediaServer Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/mnt/wvp28181pro/ZLMediaKit/release/linux/Debug
ExecStart=/mnt/wvp28181pro/ZLMediaKit/release/linux/Debug/MediaServer
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
sudo systemctl enable wvp-zlm.service
sudo systemctl start wvp-zlm.service
sudo systemctl status wvp-zlm.service
到此基本完成WVP和ZLM的部署,有些细节 我还在找,其他的部分,慢慢补充,有很需要的各位可以去 官网上 寻找支持,或者留言讨论。