实现功能
rtsp拉流到流媒体服务器,gb28181协议推流。
实现:
zlmediakit(流媒体服务器)+wvp(信令服务器)
流媒体服务器:实现视频流的推拉流。
信令服务器:负责与国标协议GB28181平台或设备信令交互实现连接。
注:可以实现局域网下国标协议GB28181交互,也可以搭建在公网服务器上可以进行协议交互。
本人使用阿里云服务器+Ubuntu20,公网搭建,局域网下也可以实现。wvp-GB28181-pro使用过程需要图形界面需要自己安装,可以参考CSDNhttps://mp.csdn.net/mp_blog/creation/editor/127392704
安装步骤:
流媒体服务器(ZLMediakit)
拉流流程:
gb28181国标协议:
通信协议结构图
SIP 监控域互联结构示意图
信令交互成功以后,媒体流发送者推送流到媒体服务器,媒体服务器在指定的端口接收到视频流后,转发给流媒体接收者。
gb28181国标协议点播流程:
联网方式:级联、互联
级联:
互联:
服务器搭建:
Zlmediakit(流媒体服务器):
下载:
#国内用户推荐从同步镜像网站gitee下载(如果地址改变可以去gitee或github搜索zlmediakit)
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
编译器:
sudo apt-get install cmake
安装依赖:
sudo apt-get install libssl-dev
flash player在播放rtmp时,采用的是复杂握手模式,如果不安装该库,flash player将播放不了zlmediakit 提供的rtmp url.
同时ZLMediaKit的https/rtsps/webrtc相关功能需要使用openssl才能开启。
安装编译:
cd ZLMediaKit
mkdir build
cd build
cmake ..
make -j4
运行:
cd ZLMediaKit/release/linux/Debug
#通过-h可以了解启动参数
./MediaServer -h
#以守护进程模式启动
./MediaServer -d &
redis 安装: Ubuntu20.04
Ubuntu安装redis详细教程_ubuntu redis安装_普通网友的博客-CSDN博客
安装
sudo apt-get install –y redis-server
设置密码
sudo vim /etc/redis/redis/redis.conf
修改配置文件里的requirepass,把注释关掉,然后后面改为你想设置的密码,然后再重新启动redis即可
重启
service redis restart
redis-cli
key *
AUTH 132456
再进行redis操作的时候就会提示输入密码了
不输入密码就进行操作redis的话会提示(error) NOAUTH Authentication required.
这时需要输入密码再进行下一步的操作AUTH 123456
启动Redis:切换到/usr/bin
./redis-server /etc/redis/redis.conf
命令行直接启动/停止/重启redis:
(如果是用apt-get或者yum install安装的redis)
/etc/init.d/redis-server start 启动redis服务
/etc/init.d/redis-server stop 停止redis服务
/etc/init.d/redis-server restart 重启redis服务
JDK安装:
1、安装依赖包:
sudo apt-get install python-software-properties
2、添加仓库源:
sudo add-apt-repository ppa:webupd8team/java
3、更新软件包列表:
sudo apt-get update
4、安装java JDK:
sudo apt-get install oracle-java8-installer
安装过程中需要接受协议:
5、查看java版本,看看是否安装成功:
java -version
如果提示找不到安装包
解决:
sudo add-apt-repository ppa:ts.sch.gr/ppa
sudo apt-get update
sudo apt-get install oracle-java8-installer
node.js和npm安装: Ubuntu18.04
通过 PPA 安装指定或最新版本的 nodejs
那么就需要使用 来安装指定版本的 nodejs 了。其需要下载一个脚本,运行此脚本会在 ubuntu 里添加一个 nodejs 源,然后用 apt 就可以下载指定的 nodejs 了。
PPA 的全称为 personal package archive 。要安装 nodejs 12.x 版本,可以运行如下命令:
cd ~
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt update
sudo apt install nodejs
要安装 nodejs 最新版本,可以运行如下命令:
cd ~
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt update
sudo apt install nodejs
卸载 nodejs:
执行如下命令:
sudo apt remove nodejs
此命令会卸载 nodejs,但是会保留配置文件,方便你以后再次安装 nodejs。
如果不想保留配置文件,继续执行:
sudo apt purge nodejs
这将会卸载 nodejs 和其相关的配置文件。
最后,你还可以移除和 nodejs 一起安装但是现在没有被使用的包:
sudo apt autoremove
安装mysql5.7 Ubuntu18可以通过命令安装,Ubuntu20不能apt-get
要安装适配zlmediakit的版本!
安装后导入sql文件 mysql.sql update.sql
Maven 安装:Ubuntu安装maven_ubuntu上安装maven_普通网友的博客-CSDN博客
命令安装:sudo apt-get install maven
maven --version 查询版本
(安装下载、使用说明------------可以去github或者Gitee上搜开源的项目)
安装依赖环境
apt-get install openjdk-11-jre git maven nodejs npm
如果安装等待时间长, 可以尝试切换软件源
检出代码
cd ~
git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
编译静态页面
cd ~/wvp-GB28181/web_src
npm install
npm run build
编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
编译完成后在src/main/resources下出现static目录
打包项目, 生成可执行jar
cd ~/wvp-GB28181
mvn package
编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
编译完成后在target目录下出现wvp-2.3.5.RELEASE.jar
端口开放:
8091 TCP
5060 TCP UDP
18080 TCP UDP
30000/30500 TCP UDP
运行wvp
cd ~/wvp-GB28181
cp ~/wvp-GB28181/src/main/resources/application-dev.yml ~/wvp-GB28181/target/application.yml //可以不执行
要修改application.yml文件中的local,改成dev
cd ~/wvp-GB28181/target
java -jar wvp-2.3.5.RELEASE.jar --spring.config.location=~/wvp-GB28181/target/application.yml
如果运行报错, 参考一般错误处理
访问管理页面
http://{sip.ip}:{server.port}
比如我的部署的服务ip为192.168.1.44, server.port为18080, 那么访问地址为http://192.168.1.44:108080, 会自动跳转到登陆页
登陆账号密码默认:admin admin