添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

二、wvp介绍
1.平台介绍

WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将不带国标功能的摄像机/直播流/直播推流转发到其他国标平台。

流媒体服务基于@夏楚 ZLMediaKit https://github.com/ ZLMediaKit / ZLMediaKit
播放器使用@dexter jessibuca https://github.com/langhuihui/jessibuca/tree/v3
前端页面基于@Kyle MediaServerUI https://gitee.com/kkkkk5G/MediaServerUI 进行修改.

2.参考文档

wvp使用文档 https://doc. wvp -pro.cn
ZLM使用文档 https://github.com/ ZLMediaKit / ZLMediaKit

三、VMware虚拟机中安装Ubuntu

点击以下的两个超链接进行下载:
vmware下载链接
Ubuntu镜像加载链接
vm直接进行安装即可。

2.vmware中部署Ubuntu

稍后再进行安装操作系统
在这里插入图片描述 -3 操作系统选择Linux系统,版本选择Ubuntu64位
在这里插入图片描述 -4 可以自己定义虚拟机的名称和存放的位置
点击下一步直到对磁盘大小进行设置,将与你磁盘存储为单个文件
在这里插入图片描述 -8 完成虚拟机的创建 在这里插入图片描述 -9
接下来进行操作系统的安装:
编辑虚拟机的设置
在这里插入图片描述 -10 对cd/dvd进行配置,选择使用ISO映像文件,将已经下载好的Ubuntu映像进行导入即可。
接下来即可启动虚拟机,然后进行系统的安装。

四、初始环境搭建

1.安装依赖

安装maven,nodejs,npm

apt-get install -y openjdk-11-jre git maven nodejs npm

2.安装redis数据库

Redis下载部署配置运行及修改登录地址、端口和密码
apt安装命令

sudo apt update

启动redis

redis-server

查看redis是否启动成功

redis-cli

127.0.0.1是本机IP,也是redis默认的IP地址,6379是redis默认的服务端口。检查redis是否可以ping通,如果输出PONG,则说明启动成功。 请添加图片描述 -12

3.安装MySQL,并创建wvp数据库

安装MySQL

sudo apt-get update #获取最新的软件源
sudo apt-get install mysql-server #安装mysql

  • 配置MySQL
  • 先对MySQL设置密码:

    sudo mysql
    #下面的命令在MySQL中执行,不要忘记
    ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘your_password’;

    这里’your_password’为你自己设置的密码,由于wvp配置文件中要根据自己的mysql设置来更改,所以这里为了方便直接采用wvp配置文件中的默认密码。

    ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY
    ‘123456’;

    开始配置:

    sudo mysql_secure_installation

    VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: n Please set the password for root here. New password: Re-enter new password: By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : n ... skipping. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n ... skipping. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n ... skipping. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!

    在MySql中创建一个名字为wvp的数据库,并在wvp数据库中执行 wvp -GB28181-pro/sql/下的mysql.sql脚本创建表结构
    连接mysql数据库,输入密码:

    mysql -u root -p

    新建一个名字为wvp的数据库:

    mysql>CREATE DATABASE wvp ;

    这里可以用以下命令查看数据库:

    mysql>show databases;

    使用这个数据库:

    mysql>use wvp ;

    执行数据库脚本

    mysql>source /home/hust_zhang/ wvp -GB28181-pro/sql/mysql.sql
    mysql>source /home/hust_zhang/ wvp -GB28181-pro/sql/update.sql

    这里执行update脚本会有报错,但似乎对后续使用没什么影响,可能数据库脚本没有同时更新。
    另外似乎也可以用flush privileges;刷新授权,来替代运行update脚本。(这里没有实验过,如果wvp启动报错的话还是继续执行update脚本)
    可以使用下面的命令查看当前数据库里面的表

    mysql>show tables;

    4.编译ZLMediaKit

  • 获取代码务必使用git克隆ZLMediaKit的代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码,你可以这样操作:
  • git clone --depth 1 https://gitee.com/xia-chu/ ZLMediaKit cd ZLMediaKit git submodule update --init
  • 编译器gcc
  • sudo apt-get install build-essential
    
  • cmake
    ZLMediaKit采用cmake来构建项目,通过cmake才能生成Makefile(或Xcode/VS工程),所以必须先安装cmake才能完成后续步骤
  • sudo apt-get install cmake
    ZLMediaKit可选依赖一些第三方库,这些库都不是必选的;在构建ZLMediaKit时,cmake能查找系统路径中的这些库,并根据安装情况选择是否开启相关特性,你可以选择安装这些依赖并启用相关特性:
    

    ⭕openssl
    flash player在播放rtmp时,采用的是复杂握手模式,如果不安装该库,flash player将播放不了zlmediakit 提供的rtmp url.
    同时ZLMediaKit的https/rtsps/webrtc相关功能需要使用openssl才能开启。

    ⭕ffmpeg
    zlmediakit可以通过fork ffmpeg进程的方式实现多种协议的拉流,编译时不需要安装FFmpeg

    ⭕sdl、avcodec、avutil

    这3个库供ZLMediaKit的test_player测试程序使用,你通常不需要安装这3个库。

    Debian系(包括ubuntu)系统下安装依赖的方法:

    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
  • 构建和编译项目
  • 由于开启webrtc相关功能比较复杂,默认是不开启编译的,可以参考下面的文档进行学习。
    zlm启用webrtc编译指南

    	cd ZLMediaKit
    	mkdir build
    	cd build
    	cmake ..
    	make -j4
    
  • 运行(如果要运行wvp整个项目,这步可以先不执行)
    ZLMediaKit工程主要生成3种二进制目标文件,他们的生成的路径在release目录下,这些目标文件主要分为:
    MediaServer进程
    这是ZLMediaKit作为服务器的主进程,该进程可以在免去开发的情况下直接作为测试流媒体服务器使用,如果你需要更复杂的业务逻辑,可以通过Web HOOK和RESTful API实现,同时你可以通过配置文件控制其参数。
    在linux下启动:
  • 	 cd ZLMediaKit/release/linux/Debug
    	./MediaServer -h
    	./MediaServer -d &
    

    5.编译wvp-pro

    可以参考WVP使用文档
    这里建议从github上下载,gitee上维护似乎不是很同步

  • 可以通过git克隆,也可以在项目下载点击下载ZIP
  • git clone https://github.com/648540858/wvp-GB28181-pro.git

  • 编译前端界面
  • cd wvp-GB28181-pro/web_src/
    npm --registry=https://registry.npm.taobao.org install
    npm run build
    

    编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
    编译完成后在src/main/resources下出现static目录 编译完成一般是这个样子,中间没有报红的错误信息。引用了一个运行成功的效果图在这里插入图片描述 -13

  • 打包项目, 生成可执行jar
  • cd wvp-GB28181-pro
    mvn package
    
    编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
    编译完成后在target目录下出现wvp-pro-***.jar文件即可
    

    注意zlm和wvp两个文件的下载目录,方便切换

    cd … //返回上一级文件夹

    五、整个wvp项目的配置运行

    1.对ZLM和WVP的配置文件进行修改来实现配置

    cd ZLMediaKit/release/linux/Debug

    打开ZLM文件中的config.ini配置文件,记录下http port和mediaServerId,这里原本的mediaServerId=your_server_id,将其修改为自己的id即可,可以随意命名,但是需要和后面wvp配置文件中的media中的id保持一致。这里采用的的是wvp配置文件application.yml中默认的id。http port也可以自定义更改。同理,conf文件和application文件中要保持一致。

    以下两张图片为config.ini文件的修改情况:
    在进行修改config.ini文件时,会出现没有权限的情况,这就需要我们把文件的权限打开,设置为可编辑状态。

    cd ZLMediaKit/conf //切换到conf文件夹下
    chmod 777 config.ini //进行权限的修改

    然后就可以进行对配置文件的修改。

  • wvp配置
    这里截取了wvp文档中的部分,可保证基础运行,想要其他功能或者想要修改的请仔细阅读文档。
  • WVP配置文件位置

    基于spring boot的开发方式,配置文件的加载是很灵活的。默认在src/main/resources/application.yml,部分配置项是可选,你不需要全部配置在配置文件中, 完全的配置说明可以参看all-application.yml。

    默认加载配置文件方式

    使用maven打包后的jar包里,已经存在了配置文件,但是每次打开jar包修改配置文件或者修改后再打包都是比较麻烦的,所以大家可通过指定配置文件路径来加载指定位置的配置文件。

    cd wvp-GB28181-pro/target
    java -jar wvp-pro-*.jar --spring.config.location=../src/main/resources/application.yml
    

    迁移配置文件以方便启动
    由于配置文件的命令比较长,所以为了启动方便通常会把配置文件放到jar包的同级目录,类似这样, 移除jar包内/BOOT-INF/classes/下所有以application开头的文件,使用解压缩工具打开jar即可,不需要解压出来。

    cd wvp-GB28181-pro/target
    mv ../src/main/resources/application-dev.yml application.yml 
    java -jar wvp-pro-*.jar 
    

    建议使用这种方式进行启动。

    这时候如果按照上述方式启动,会报错,因为还没有修改wvp中的配置文件application.yml。

  • application.yml配置文件的修改
  • 首先修改MySQL数据库中使用的数据库,即刚刚创建的wvp数据库,修改root密码
    datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true username: root password: 123456

    接下来修改sip的配置

    ip地址为自己虚拟机的ip地址,如果你的笔记本经常发生ip地址的变化,在每次使用时都需要修改ip

    Ubuntu下查看本机的ip地址:

    ip addr

    可能会出现端口占用的情况,依据自己虚拟机的情况来进行端口的修改
    查看Ubuntu中已经使用的端口号

    netstat -apt

    ip修改为本虚拟机的IP地址
    http的端口号同样与之前config.ini中的端口号一致

    根据自己的喜好和虚拟机端口的使用情况设置http的端口号,这个端口号即为在浏览器中打开时的端口号请添加图片描述 -19

    cd ZLMediaKit/release/linux/Debug ./MediaServer -h ./MediaServer -d & sudo ./MediaServer sudo ./MediaServer -d -m 3 & cd wvp-GB28181-pro/target java -jar wvp-pro-*.jar

    在成功运行之后,打开浏览器输入虚拟机ip+wvp监听的http端口例如:192.168.1.3:18080)即可看到登录界面。
    用户名:admin 密码:admin

    六、参考链接
    (20条消息) Ubuntu 安装和使用MySQL
    wvp-GB28181-pro 编译部署ubuntu系统【详细教程】
    ZLMediaKit Wiki
    wvp文档doc.wvp-pro.cn
    wvp-GB28181-pro链接github
    ZLMediaKit链接github