wvp-GB28181-pro 项目 ZLMediaKit 部署 (Centos7)
一、项目部署
1、拉取代码
#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
2、安装编译器
sudo yum -y install gcc
3、安装cmake
yum安装:
sudo yum -y install cmake
ps: 后面执行 cmake …报错,cmake 版本过低,可手动安装
CMake 3.13 or higher is required. You are running version 2.8.12.2
手动安装:
#移除旧版本
sudo yum remove cmake
#安装依赖
sudo yum install -y epel-release
sudo yum install -y wget
#下载
wget https://github.com/Kitware/CMake/releases/download/v3.3.2/cmake-3.3.2-Linux-x86_64.tar.gz
# 解压
tar -zxvf cmake-3.3.2-Linux-x86_64.tar.gz
cp cmake-3.3.2-Linux-x86_64 cmake-3.3.2
cd cmake-3.3.2
#构建和安装
./bootstrap
gmake
sudo make install
#查看版本
cmake --version# ps:查看版本报错,执行下面命令
#1.查找cmake
which cmake
#2.执行
suso ln -s /usr/local/bin/cmake /usr/bin/cmake
#3.查看版本
cmake --version
4、安装依赖(可选,已安装了可以不用安装)
#除了libssl-dev,其他其实都可以不安装
sudo yum -y install libssl-dev
sudo yum -y install libsdl-dev
sudo yum -y install libavcodec-dev
sudo yum -y install libavutil-dev
sudo yum -y install ffmpeg
5、构建和编译项目
cd ZLMediaKit
mkdir build
cd build
cmake ..
make -j4
6、运行项目
运行项目我写了一个脚本 run.sh,直接把脚本放到 ZLMediaKit/release/linux/Debug 这个目录下。然后停止启动都使用脚本即可。
脚本内容:
#!/bin/bash# 定义 ZLMediaKit 可执行文件路径和日志文件路径
MEDIA_SERVER_PATH="./MediaServer"# 检查 ZLMediaKit 是否在运行
check_status() {PID=$(ps -ef | grep MediaServer | grep -v grep | awk '{print $2}')if [ -z "$PID" ]; thenecho "MediaServer is not running."return 1elseecho "MediaServer is running with PID: $PID"return 0fi
}# 启动 ZLMediaKit
start_server() {check_statusif [ $? -eq 0 ]; thenecho "MediaServer is already running."elsenohup $MEDIA_SERVER_PATH -d >/dev/null 2>&1 &echo "MediaServer started."fi
}# 停止 ZLMediaKit
stop_server() {check_statusif [ $? -eq 0 ]; thenkill $PIDecho "Stopping MediaServer..."sleep 1 # 等待进程停止check_statusif [ $? -eq 1 ]; thenecho "MediaServer stopped successfully."elseecho "Failed to stop MediaServer. Trying to force stop."kill -9 $PIDif [ $? -eq 0 ]; thenecho "MediaServer forcefully stopped."elseecho "Failed to force stop MediaServer."fifielseecho "MediaServer is not running."fi
}# 重启 ZLMediaKit
restart_server() {stop_serverstart_server
}# 查看日志
view_log() {LATEST_LOG=$(ls -t ./log/*.log | head -n 1)if [ -f "$LATEST_LOG" ]; thenecho "Viewing latest log file: $LATEST_LOG"tail -f "$LATEST_LOG"elseecho "No log files found."fi
}# 脚本的入口,根据参数选择操作
case $1 instart)start_server;;stop)stop_server;;restart)restart_server;;status)check_status;;log)view_log;;*)echo "Usage: $0 {start|stop|restart|status|log}"exit 1;;
esac
修改脚本可执行权限
chmod 777 ./run.sh
脚本的使用
#启动
./run.sh start
#重启
./run.sh restart
#状态
./run.sh status
#日志
./run.sh log
#停止
./run.sh stop
二、wvp-GB28181-pro 配置注意点
https://gitee.com/pan648540858/wvp-GB28181-pro
配置ZLMediaKit连接信息注意点:
ZLMediaKit配置文件
./release/linux/Debug/config.ini
./conf/config.ini
#默认使用
./release/linux/Debug/config.ini
1:id必须和ZLMediaKit配置中general.mediaServerId设置一致
2: ip必须正确设置
3:http-port和ZLMediaKit配置中http.port相同
4:secret和ZLMediaKit配置中api.secret相同