sudo apt update
## 编译工具
sudo apt install -y git openjdk-11-jdk tar vim cmake gcc g++ libsrtp2-dev libssl-dev maven npm
## ffmepg
sudo apt install ffmpeg
##国内服务器(与国外服务器二选一)
git clone https://gitee.com/xia-chu/ZLMediaKit.git
##国外服务器(与国外服务器二选一)
git clone https://github.com/ZLMediaKit/ZLMediaKit
cd ZLMediaKit
git submodule update --init --recursive
mkdir -p build release/linux/Release/
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_WEBRTC=true -DENABLE_TESTS=false ..
cmake --build . --target MediaServer
————————————————
版权声明:本文为CSDN博主「梦醒贰零壹柒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/macaiyun0629/article/details/132515139
wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
mkdir app
tar xf apache-maven-3.9.4-bin.tar.gz
mv apache-maven-3.9.4 app/maven
echo "export PATH=~/app/maven/bin:\$PATH" >> ~/.bashrc
## 环境变量生效
source ~/.bashrc
wget https://nodejs.org/dist/v16.19.0/node-v16.19.0-linux-x64.tar.gz
tar xf node-v16.19.0-linux-x64.tar.gz
mv node-v16.19.0-linux-x64 app/node
echo "export PATH=~/app/node/bin:\$PATH" >> ~/.bashrc
## 环境变量生效
source ~/.bashrc
#地址可以更换
git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
git clone https://github.com/648540858/wvp-GB28181-pro.git
#前端编译
cd wvp-GB28181-pro/web_src
# 下载依赖
npm install --registry=https://registry.npmmirror.com
# 编译
npm run build
#后端编译
cd ..
mvn clean package -DskipTests
#使用MySQL redis 可以用宝塔安装 也可以用docker
#安装docker 链接
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
#创建安装目录
mkdir -p /home/media/mysqldata /home/media/redisdata
#创建yml文件
cd /home/media/
vim video.yml
#输入以下下内容
version: "3.8"
services:
redis:
image: redis:6.2-alpine
restart: always
environment:
TZ: Asia/Shanghai
ports:
- 6379:6379
volumes:
- /opt/video/redisdata/data:/data
- /opt/video/redisdata/log:/logs
command: redis-server --port 6379 --requirepass 12345678 --appendonly yes
mysql:
image: mysql:8
restart: always
command:
[
"--character-set-server=utf8mb4",
"--collation-server=utf8mb4_unicode_ci",
"--default-time-zone=+8:00",
]
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 12345678
SQL_MODE: "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
volumes:
- /opt/video/mysqldata/mysql:/var/lib/mysql:rw
# 将镜像pull下来
docker pull redis:6.2-alpine
docker pull mysql:8
## 启动
docker-compose -f video.yml -p wvp up -d
# 进入wvp下载项目
# 进入数据库文件夹 使用宝塔把初始化数据库导入
## 进入wvp项目
cd ~/wvp-GB28181-pro/
## 复制mysql.sql、update.sql文件到mysql容器
docker cp sql media-mysql-1:/tmp
## 进入mysql容器
docker exec -it media-mysql-1 bash
## 登录数据库
mysql -uroot -p12345678
## 创建wvp数据库
CREATE DATABASE wvp
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#创建安装目录
mkdir -p /home/media/zlm
# 进入zlmbia编译项目目录
cd ~/ZLMediaKit
cp -r release/linux/Release/* /home/media/zlm
#进入拷贝后的目录,测试可以用
./MediaServer
#创建开机启动脚本
vim /etc/systemd/system/zlm.service
#内容
[Unit]
Description=ZLMediaKit
[Service]
Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin"
#路径需要
ExecStart=/home/media/zlm/MediaServer -c /home/media/zlm/config.ini
StandardOutput=null
[Install]
WantedBy=multi-user.target
vim config.ini
修改
[api]
apiDebug=1
defaultSnap=./www/logo.png
downloadRoot=./www
#需要与wvp的yml 设置匹配
secret=zT49uxy7EgUeAYJxYFaGPZqgpMefaGQq
snapRoot=./www/snap/
[cluster]
origin_url=
retry_count=3
timeout_sec=15
[ffmpeg]
bin=/usr/bin/ffmpeg
cmd=%s -re -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s
log=./ffmpeg/ffmpeg.log
restart_sec=0
snap=%s -rtsp_transport tcp -i %s -y -f mjpeg -frames:v 1 %s
[general]
check_nvidia_dev=1
enableVhost=0
enable_ffmpeg_log=0
flowThreshold=1024
maxStreamWaitMS=15000
#需要与wvp的yml 设置匹配
mediaServerId=mystation18
mergeWriteMS=0
resetWhenRePlay=1
streamNoneReaderDelayMS=20000
unready_frame_cache=100
wait_add_track_ms=3000
wait_track_ready_ms=10000
mkdir -p /home/media/wvp
# 复制目录
cd ~/wvp-GB28181-pro/
# 复制java包安装目录
cp target/wvp-pro-2.6.6-xxxxx.jar /home/media/wvp/wvp-pro.jar
# 复制配置文件安装目录
cp src/main/resources/all-application.yml /home/media/wvp/application.yml
#进入拷贝后目录测试代码
java -jar wvp-pro-*.jar
vim /etc/systemd/system/wvp.service
[Unit]
Description=wvp
[Service]
Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin"
ExecStart=/usr/bin/java -jar /home/media/wvp/wvp-pro.jar --spring.config.location=/home/media/wvp/application.yml
StandardOutput=null
[Install]
WantedBy=multi-user.target
—
wvp配置
spring:
# 设置接口超时时间
mvc:
async:
request-timeout: 20000
# [可选]上传文件大小限制
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:
# [可选] 超时时间
timeout: 10000
# [可选] 一个pool最多可分配多少个jedis实例
poolMaxTotal: 1000
# [可选] 一个pool最多有多少个状态为idle(空闲)的jedis实例
poolMaxIdle: 500
# [可选] 最大的等待时间(秒)
poolMaxWait: 5
datasource:
# kingbase配置
# type: com.zaxxer.hikari.HikariDataSource
# driver-class-name: com.kingbase8.Driver
# url: jdbc:kingbase8://192.168.1.55:54321/wvp?useUnicode=true&characterEncoding=utf8
# username: system
# password: system
# postgresql配置
# type: com.zaxxer.hikari.HikariDataSource
# driver-class-name: org.postgresql.Driver
# url: jdbc:postgresql://192.168.1.242:3306/242wvp
# username: root
# password: SYceshizu1234
# mysql配置
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/mysql_root?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=
username: mysql_root
password: mysql_passwd
hikari:
connection-timeout: 20000 # 是客户端等待连接池连接的最大毫秒数
initialSize: 50 # 连接池初始化连接数
maximum-pool-size: 200 # 连接池最大连接数
minimum-idle: 10 # 连接池最小空闲连接数
idle-timeout: 300000 # 允许连接在连接池中空闲的最长时间(以毫秒为单位)
max-lifetime: 1200000 # 是池中连接关闭后的最长生命周期(以毫秒为单位)
上一篇: 面板常用Linux命令