最终效果
简介
GB28181协议是视频监控领域的国家标准。该标准规定了公共安全视频监控联网系统的互联结构, 传输、交换、控制的基本要求和安全性要求, 以及控制、传输流程和协议接口等技术要求,是视频监控领域的国家标准。GB28181协议信令层面使用的是SIP(Session Initiation Protocol)协议。
ZLMediaKit 是一个基于C++11的高性能运营级流媒体服务框架。
WVP(WEB VIDEO PLATFORM是) 是一个基于GB28181-2016标准实现的网络视频平台,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联,支持rtsp/rtmp等视频流转发到国标平台,支持rtsp/rtmp等推流转发到国标平台。
一、基本库安装
1、系统信息如下,尽量保持一致。
2、依赖库安装,分别执行如下指令
sudo apt install gcc g++ cmake make git curl p7zip-full vim pkg-config autoconf automake -y
sudo apt install build-essential
# 安装netstat,ifconfig等命令
sudo apt-get install net-tools
sudo apt-get install -y openjdk-11-jre git maven
3、关闭防火墙
# 查看防火墙状态
service ufw status
# 关闭防火墙
service ufw stop
sudo /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
4、安装并启动Redis
# 更新
sudo apt update
# 安装Redis服务
sudo apt install redis-server
# 启动Redis服务
sudo systemctl start redis-server
# 测试Redis是否启动成功
redis-cli // 进入Redis终端
ping // 在终端输入ping,若返回PONG说明启动成功
# 注意,这里就不加密码了。在之后其他软件配置Redis信息时注意不要加密码。
5、安装jre
# 执行完该条命令,执行如下图指令查看是否正常
sudo apt install default-jre
6、安装maven
(1)、执行如下指令
sudo apt update
sudo apt install maven
(2)、修改maven的配置文件,将下面6行代码加入到settings.xml中具体如下图所示位置。
执行:sudo vim /usr/share/maven/conf/settings.xml
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
(3)、查看mvn安装状态
7、安装Nodejs&npm
下面指令一次执行即可:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\
sudo apt-get install -y nodejs
查看安装状态:
8、wvp-GB28181-2.6项目下载
从如下git地址下载或直接使用本人下载zip包均可:
git clone https://github.com/648540858/wvp-GB28181-pro.git
9、安装Mysql,并创建wvp数据库
(1)、安装Mysql
sudo apt-get update
# 安装mysql
sudo apt-get install mysql-server
//
# 进入mysql终端
sudo mysql
# 将密码设置为123456
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 退出mysql终端
quit
//
# 配置(最后一个选择y,其余选择n即可。如下图最下方一个输入y即可)
sudo mysql_secure_installation
(2)、创建导入wvp数据库,细节如下图
# 连接mysql
mysql -u root -p
# 创建wvp数据库
CREATE DATABASE wvp;
# 查看数据库
show databases;
# 使用wvp数据库
use wvp;
# 执行数据库脚本(下面mysql.sql、update.sql为wvp源码下sql目录所在)
source /home/jxd/jxd/wvp-GB28181-pro-2.6.6/sql/mysql.sql;
source /home/jxd/jxd/wvp-GB28181-pro-2.6.6/sql/update.sql;
# 刷新授权(前一步update脚本会有报错,但似乎对后续使用没什么影响,可能数据库脚本没有同时更新)
flush privileges;
# 查看数据库内的表
show tables;
# 退出数据库
quit
二、ZLMediaKit项目编译
(1)、下载ZLMediaKit源码(具体如图)
不使用github下载源码,务必使用git克隆ZLMediaKit代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码。
# 克隆ZLMediaKit源码
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
# 千万不要忘记执行这句命令
git submodule update --init
(2)、安装相关依赖库
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install libsdl-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavutil-dev
sudo apt-get install ffmpeg
(3)、开始编译ZLMediaKit
# 进入ZLMediaKit源码文目录
cd ZLMediaKit
# 创建进入build文件夹
mkdir build
cd build
# 编译
cmake ..
make -j4
编译完成后在如下目录生成文件,此时为成功编译。
三、wvp-GB28181-2.6项目编译
(1)、源码下载
在本文“一.8”已经介绍了源码下载,具体如下图查看
(2)、编译前端页面
cd ./web_src
/********************************************************/
/*
参考: https://blog.csdn.net/laosao_66/article/details/135880270
由于在执行倒数第二个指令时出现证书过期问题,则使用如下指令规避:
*/
# 清除npm缓存
npm cache clean --force
# 取消ssl验证:
npm config set strict-ssl false
# 换源
npm config set registry http://registry.cnpmjs.org
/********************************************************/
npm --registry=https://registry.npm.taobao.org install
npm run build
(3)、打包后台项目
# 在wvp-GB28181-2.6目录下执行如下指令即可
mvn install
如下图编译过程,可参考。
如下图,编译成功产生的文件
四、WVP+ZLM配置及运行
(1)、打开/home/jxd/jxd/wvp-GB28181-pro-2.6.6/src/main/resources/application-dev.yml文件,进行修改
改为本机ip
注意:记录id及http-port因为要写入zlmediakit配置中
(2)、打开/home/jxd/jxd/ZLMediaKit/release/linux/Debug/config.ini 文件,进行修改
[general].mediaServerId改为wvp中记录的id
[http]-port改为wvp中记录的port
记录[api].secret,稍后写入到wvp配置中
(3)、打开/home/jxd/jxd/wvp-GB28181-pro-2.6.6/src/main/resources/application-dev.yml文件,进行修改
将在zlmedia配置中拷贝的secret拷贝到wvp配置中:
(4)、启动运行
①启动ZLMediaKit:进入/jxd/ZLMediaKit/release/linux/Debug目录,直接运行MediaServer即可
②启动wvp:进入/jxd/wvp-GB28181-pro-2.6.6/src/main/resources目录,直接运行:
java -jar …/…/…/target/wvp-pro-2.6.6-02230943.jar --spring.config.location=./application-dev.yml
③如下效果
④最终效果
关注
笔者 - jxd