在开始部署国标视频平台之前,我们需要先准备好Ubuntu操作系统的基础环境。我推荐使用Ubuntu 22.04 LTS版本,这是一个长期支持版本,稳定性有保障。我自己在多个生产环境项目中都使用这个版本,实测下来非常可靠。
首先更新系统软件包是个好习惯,这能确保我们安装的依赖都是最新版本。打开终端执行以下命令:
bash复制sudo apt update && sudo apt upgrade -y
接下来需要安装一些基础工具,这些工具在后续的编译和部署过程中都会用到:
bash复制sudo apt install -y git curl wget vim net-tools
对于网络配置,建议给服务器分配静态IP地址。这样可以避免IP变动导致的服务不可用问题。修改网络配置文件通常位于/etc/netplan/目录下,根据你的实际网卡名称进行调整:
bash复制sudo vim /etc/netplan/00-installer-config.yaml
在配置文件中添加类似这样的内容(根据你的实际网络环境调整):
yaml复制network:
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
保存后应用配置:
bash复制sudo netplan apply
wvp-pro是基于Java开发的,所以我们需要先配置Java环境。我推荐安装OpenJDK 11,这是一个长期支持版本,兼容性很好:
bash复制sudo apt install -y openjdk-11-jdk maven
安装完成后验证版本:
bash复制java -version
mvn -v
如果系统中有多个Java版本,可以通过以下命令设置默认版本:
bash复制sudo update-alternatives --config java
wvp-pro的前端部分需要Node.js环境。我建议安装Node.js 16.x或18.x版本:
bash复制curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
验证安装:
bash复制node -v
npm -v
为了提高npm的安装速度,可以设置国内镜像源:
bash复制npm config set registry https://registry.npmmirror.com
数据库是wvp-pro的核心组件,我们需要安装MySQL并创建相应的数据库:
bash复制sudo apt install -y mysql-server
安装完成后进行安全配置:
bash复制sudo mysql_secure_installation
创建wvp-pro需要的数据库和用户:
mysql复制CREATE DATABASE wvp CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'wvp'@'%' IDENTIFIED BY 'wvp123456';
GRANT ALL PRIVILEGES ON wvp.* TO 'wvp'@'%';
FLUSH PRIVILEGES;
Redis用于缓存和会话管理,安装很简单:
bash复制sudo apt install -y redis-server
修改Redis配置文件允许远程连接:
bash复制sudo vim /etc/redis/redis.conf
找到bind 127.0.0.1这一行,修改为:
code复制bind 0.0.0.0
重启Redis服务使配置生效:
bash复制sudo systemctl restart redis
ZLMediaKit是一个高性能的流媒体服务器,我们需要先安装它的编译依赖:
bash复制sudo apt install -y build-essential cmake libssl-dev libsdl1.2-dev \
libavcodec-dev libavutil-dev ffmpeg
克隆ZLMediaKit的源代码仓库:
bash复制git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
git submodule update --init
开始编译过程:
bash复制mkdir build
cd build
cmake ..
make -j$(nproc)
编译完成后,你会在release/linux/Debug/目录下找到编译好的二进制文件。我建议将这个目录添加到PATH环境变量中:
bash复制echo 'export PATH=$PATH:/path/to/ZLMediaKit/release/linux/Debug' >> ~/.bashrc
source ~/.bashrc
ZLMediaKit的配置文件位于release/linux/Debug/config.ini,我们需要修改几个关键配置:
ini复制[api]
secret=BkPj2ca6QPpY5RccREJq4kAOu9ZEt70x
[general]
mediaServerId=FQ3TF8yT83wh5Wvz
[http]
port=80
[rtp_proxy]
port_range=30000-35000
特别注意:
secret是API调用的密钥,需要与wvp-pro配置一致mediaServerId是服务器唯一标识,也要与wvp-pro配置匹配port_range是RTP端口范围,确保这个范围没有被防火墙阻止克隆wvp-pro的仓库:
bash复制git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
cd wvp-GB28181-pro
进入前端目录并安装依赖:
bash复制cd web_src
npm install
npm run build
编译完成后,静态文件会自动生成到src/main/resources/static目录。
返回项目根目录,使用Maven打包:
bash复制cd ..
mvn package
编译成功后,你会在target目录下找到生成的jar包,文件名类似于wvp-pro-2.7.0-01260305.jar。
导入wvp-pro的数据库脚本:
bash复制mysql -u wvp -p wvp < 数据库/初始化-mysql.sql
主要的配置文件是src/main/resources/application.yml,我们需要修改以下几个关键部分:
yaml复制datasource:
dynamic:
primary: master
datasource:
master:
url: jdbc:mysql://localhost:3306/wvp?useUnicode=true&characterEncoding=UTF8
username: wvp
password: wvp123456
sip:
ip: 0.0.0.0
port: 5060
domain: 4401020049
id: 44010200492000000001
password: admin123
media:
id: FQ3TF8yT83wh5Wvz
ip: 192.168.1.100
http-port: 80
secret: BkPj2ca6QPpY5RccREJq4kAOu9ZEt70x
rtp:
enable: true
port-range: 30000,35000
确保wvp-pro配置中的ZLMediaKit连接信息与ZLMediaKit的实际配置一致:
media.id对应ZLMediaKit的general.mediaServerIdmedia.secret对应ZLMediaKit的api.secretmedia.ip是ZLMediaKit服务器的IP地址media.http-port是ZLMediaKit的HTTP端口进入ZLMediaKit的编译目录启动服务:
bash复制cd ZLMediaKit/release/linux/Debug
./MediaServer -c config.ini
可以使用以下命令测试ZLMediaKit是否正常运行:
bash复制curl http://localhost/
进入wvp-pro的编译目录启动服务:
bash复制cd wvp-GB28181-pro/target
java -jar wvp-pro-*.jar
启动成功后,可以通过浏览器访问:
code复制http://服务器IP:18080
默认用户名和密码都是admin。
在wvp-pro的Web界面中,可以添加GB28181设备进行测试。如果是测试环境,可以使用GB28181设备模拟器。设备添加成功后,应该能在界面上看到设备在线状态和视频流。
在实际部署过程中,可能会遇到各种问题。这里分享几个我遇到过的典型问题及解决方法:
问题1:ZLMediaKit启动失败
netstat -tulnp | grep 端口号ldd MediaServer查看是否有缺失的库问题2:wvp-pro无法连接ZLMediaKit
ping ZLMediaKit服务器IPsudo ufw status问题3:视频流无法播放
日志文件位置:
对于生产环境部署,可以考虑以下优化措施:
ZLMediaKit优化:
wvp-pro优化:
-Xms2g -Xmx4g系统层面优化:
这套环境我在多个安防项目中实际使用过,稳定性相当不错。刚开始部署时可能会遇到各种配置问题,但只要按照步骤仔细检查,一般都能解决。建议第一次部署时,先在小规模测试环境验证,确认所有功能正常后再上线生产环境。