wvp-GB28181-pro 编译部署ubuntu系统【详细教程】

这篇具有很好参考价值的文章主要介绍了wvp-GB28181-pro 编译部署ubuntu系统【详细教程】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

wvp-GB28181-pro 编译部署ubuntu系统-新手向


一、前言

第一次进行wvp-pro编译部署遇到不少问题,主要对其中的一些依赖以及配置文件配置不熟悉,特此记录一下整个编译部署流程。本文中编译部署在ubuntu20下进行。建议Ubuntu16版本以上运行此项目。

二、wvp-GB28181-pro介绍

1. 开箱即用的28181协议视频平台

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. 应用场景

支持浏览器无插件播放摄像头视频。
支持摄像机、平台、NVR等设备接入。 支持国标级联。
支持rtsp/rtmp等视频流转发到国标平台。
支持rtsp/rtmp等推流转发到国标平台。

3. 部署文档

doc.wvp-pro.cn

三、编译过程

1. 安装依赖

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

2. 安装redis

可以参考Redis下载部署配置运行及修改登录地址、端口和密码

  • apt命令安装

    sudo apt update

    sudo apt install redis-server

  • 启动redis

    redis-server

  • 查看redies是否启动

    redis-cli

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

wvp-GB28181-pro 编译部署ubuntu系统【详细教程】

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

可以参考ubuntu20.04安装MySQL以及MySQL-workbench可视化工具

  • 安装Mysql

    sudo apt-get update #获取最新的软件源

    sudo apt-get install mysql-server #安装mysql

  • 配置Mysql

    这里本该直接sudo mysql_secure_installation对mysql进行配置,但是密码设置时出现了报错,故这里先设置密码:

    sudo mysql

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

wvp-GB28181-pro 编译部署ubuntu系统【详细教程】

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

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

开始配置:

sudo mysql_secure_installation

...
# 1.询问是否安装密码插件,我选择 No
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

# 2.为root用户设置密码
Please set the password for root here.

New password: 

Re-enter new password: 

#3.删除匿名用户,我选No
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.

#4.禁止root管理员从远程登录,这里我选 No
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.
 
 #5.删除test数据库并取消对它的访问权限, 我选 No
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.
 
 #6.刷新授权表,让初始化后的设定立即生效, 选 Yes
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! 

这里由于在之前已经设置过了密码,所以#1,#2在这里直接被输入密码替代

  • 在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;

    执行数据库脚本(这里首先要git克隆wvp-pro源码):

    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

可以参考ZLMediaKit Wiki 快速开始,这里只截取Linux操作部分

  • 获取代码

    请不要使用github 下载zip包的方式下载源码,务必使用git克隆ZLMediaKit的代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码,你可以这样操作:

    #国内用户推荐从同步镜像网站gitee下载 
    git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
    cd ZLMediaKit
    #千万不要忘记执行这句命令
    git submodule update --init
    
  • 编译器

    ZLMediaKit采用了C++11的语法和库,要求编译器支持完整的C++11标准,亦即:

    • linux上要求gcc 版本 >= 4.8(4.7应该也能支持)

    • macOS上clang >= ???(我也不知道,估计大部分不会遇到这个问题)

    • windows 上visual stuido >= 2015(vs2013某些版本也能编译通过,如果怕麻烦建议直接vs2017)

    • 如果你是debian系操作系统(包括ubuntu系用户),一般自带的gcc版本够新,你可以这样安装gcc编译器:

      sudo apt-get install build-essential
      
    • 如果你是centos7或以上用户,你可以这样安装gcc编译器:

      sudo yum -y install gcc
      sudo yum -y install gcc-c++
      
    • 如果你是centos6.*用户,你可以这样安装gcc编译器:

      sudo yum install centos-release-scl -y
      sudo yum install devtoolset-4-toolchain -y
      #切换到高版本gcc
      scl enable devtoolset-4 bash
      
  • camke

    ZLMediaKit采用cmake来构建项目,通过cmake才能生成Makefile(或Xcode/VS工程),所以必须先安装cmake才能完成后续步骤。

    • 如果你是debian系操作系统(包括ubuntu系用户),一般自带的cmake版本够新,你可以这样安装cmake

      sudo apt-get install cmake
      
    • 如果你是centos7或以上用户,你也许可以这样安装cmake:

      sudo yum -y install cmake
      
    • 如果你是centos6.*用户,那么你需要下载新版本的cmake源码然后编译安装cmake

      wget https://github.com/Kitware/CMake/releases/download/v3.17.0-rc3/cmake-3.17.0-rc3.tar.gz
      tar -xvf cmake-3.17.0-rc3.tar.gz
      cd cmake-3.17.0-rc3
      ./configure
      make -j4
      sudo make install
      
  • 依赖库

    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)系统下安装依赖的方法:

      #除了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
      
  • 构建和编译项目

    由于开启webrtc相关功能比较复杂,默认是不开启编译的,如果你对zlmediakit的webrtc功能比较感兴趣,可以参考这里

    • 在linux系统下,你应该这样操作:

      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
      #通过-h可以了解启动参数
      ./MediaServer -h
      #以守护进程模式启动
      ./MediaServer -d &
      
    • c api 的SDK

    ZLMediaKit也提供c的api二次开发sdk库,头文件在ZLMediaKit/api/include,库文件为:

    • linux下:

      ZLMediaKit/release/linux/Debug/libmk_api.so
      

      SDK头文件有详细的注释,一般足够二次开发使用。

    • test_开头的测试程序

      相关代码在ZLMediaKit/tests目录下,你可以对照代码启动测试进程。

5. 编译WVP-PRO


可以参考[WVP使用文档](编译 (wvp-pro.cn))

这里建议从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目录 编译完成一般是这个样子,中间没有报红的错误信息

wvp-GB28181-pro 编译部署ubuntu系统【详细教程】

  • 打包项目, 生成可执行jar

    cd wvp-GB28181-pro
    mvn package
    

    编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
    编译完成后在target目录下出现wvp-pro-***.jar。

四、 配置运行:

1. 对ZLM和WVP进行配置

  • ZLM配置
## ZLMediaKit服务目录
cd ZLMediaKit/release/linux/Debug

打开config.ini配置文件,记录下http port和mediaServerId,这里原本的mediaServerId=your_server_id,将其修改为自己的id即可,这里采用的的是wvp配置文件application.yml中默认的id。http port也可以自定义更改。

wvp-GB28181-pro 编译部署ubuntu系统【详细教程】
wvp-GB28181-pro 编译部署ubuntu系统【详细教程】

  • wvp配置

    这里截取了wvp文档doc.wvp-pro.cn中的部分,可保证基础运行,想要其他功能或者想要修改的请仔细阅读文档。

    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修改

    这里先列出必须修改的配置:

    # 作为28181服务器的配置
    sip:
        # [必须修改] 本机的IP
        ip: 192.168.1.3
        
    # zlm 默认服务器配置
    media:
        # ZLMediaKit的服务ID,必须配置,要与ZLMediaKit/release/linux/Debug/config.ini文件中mediaServerId一致
        id: FQ3TF8yT83wh5Wvz
        # [必须修改] zlm服务器的内网IP,sdp-ip与stream-ip使用默认值的情况下,这里不要使用127.0.0.1/0.0.0.0
        ip: 192.168.1.3
        # [必须修改] zlm服务器的http.port
        http-port: 9080
    

    上述配置修改完,即可运行,其他的配置可以参考文档或者本文从文档截取的部分:

    配置服务启动端口(可选的可以使用默认配置)

    # [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
    server:
        port: 18080
    

    配置28181相关信息(可选的可以使用默认配置)

    # 作为28181服务器的配置
    sip:
        # [必须修改] 本机的IP
        ip: 192.168.1.3
        # [可选] 28181服务监听的端口
        port: 5060
        # 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
        # 后两位为行业编码,定义参照附录D.3
        # 3701020049标识山东济南历下区 信息行业接入
        # [可选]
        domain: 3402000000
        # [可选]
        id: 34020000002000000001
        # [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
        password: 12345678
    

    配置ZLMediaKit连接信息

    #zlm 默认服务器配置
    media:
        # ZLMediaKit的服务ID,必须配置
        id: FQ3TF8yT83wh5Wvz
        # [必须修改] zlm服务器的内网IP,sdp-ip与stream-ip使用默认值的情况下,这里不要使用127.0.0.1/0.0.0.0
        ip: 192.168.1.3
        # [必须修改] zlm服务器的http.port
        http-port: 6080
        # [可选] zlm服务器的hook.admin_params=secret
        secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
        # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
        rtp:
            # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
            enable: true
            # [可选] 在此范围内选择端口用于媒体流传输,
            port-range: 30000,30500 # 端口范围
            # [可选] 国标级联在此范围内选择端口发送媒体流,
            send-port-range: 30000,30500 # 端口范围
        # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用
        record-assist-port: 18081
    

    个性化定制信息配置

    # [根据业务需求配置]
    user-settings:
        # [可选] 服务ID,不写则为000000
        server-id:
        # [可选] 自动点播, 使用固定流地址进行播放时,如果未点播则自动进行点播, 需要rtp.enable=true
        auto-apply-play: false
        # [可选] 部分设备需要扩展SDP,需要打开此设置
        senior-sdp: false
        # 保存移动位置历史轨迹:true:保留历史数据,false:仅保留最后的位置(默认)
        save-position-history: false
        # 点播等待超时时间,单位:毫秒
        play-timeout: 3000
        # 等待音视频编码信息再返回, true: 可以根据编码选择合适的播放器,false: 可以更快点播
        wait-track: false
        # 是否开启接口鉴权
        interface-authentication: true
        # 自动配置redis 可以过期事件
        redis-config: true
        # 接口鉴权例外的接口, 即不进行接口鉴权的接口,尽量详细书写,尽量不用/**,至少两级目录
        interface-authentication-excludes:
            - /api/v1/**
        # 推流直播是否录制
        record-push-live: true
        # 国标是否录制
        record-sip: true
        # 是否将日志存储进数据库
        logInDatebase: true
        # 第三方匹配,用于从stream钟获取有效信息
        thirdPartyGBIdReg: [\s\S]
    

    如果配置信息无误,你可以启动zlm,再启动wvp来测试了,启动成功的话,你可以在wvp的日志下看到zlm已连接的提示。

2.运行

#启动ZLM
cd ZLMediaKit/release/linux/Debug
#通过-h可以了解启动参数
./MediaServer -h
#以守护进程模式启动
./MediaServer -d &
#如果说没有权限,请加上sudo
sudo ./MediaServer
sudo ./MediaServer -d -m 3 &

#启动WVP
cd wvp-GB28181-pro/target
java -jar wvp-pro-*.jar

成功运行后,在浏览器中打开你的ip地址+WVP监听的HTTP端口(例如:192.168.1.3:18080)即可看到登录界面

wvp-GB28181-pro 编译部署ubuntu系统【详细教程】

五、 参考链接:

(20条消息) Ubuntu 安装和使用MySQL

ZLMediaKit Wiki

wvp文档doc.wvp-pro.cn

wvp-GB28181-pro链接github

ZLMediaKit链接github文章来源地址https://www.toymoban.com/news/detail-445899.html

到了这里,关于wvp-GB28181-pro 编译部署ubuntu系统【详细教程】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • wvp-GB28181-pro录像功能开发环境搭建、配置、使用

    离线安装脚本: https://gitcode.net/zenglg/ubuntu_wvp_online_install.git 下载离线安装脚本,完成wvp平台的部署 操作系统:包管理工具是apt ky10桌面版 uos桌面版 deepin桌面版 ubuntu桌面版 开发工具 idea   录像模块代码路径: wvp-pro-assist-pom-modify: 修改pom.xml文件完成依赖包的下载 WVP-PRO与ZL

    2024年02月03日
    浏览(43)
  • 【流媒体视频监控平台开发wvp-GB28181-pro】

    1.原有视频监控,基于海康、大华web控件和SDK 2.开源wvp-GB28181-pro gitee地址:https://gitee.com/pan648540858/wvp-GB28181-pro.git B站大佬北小菜:https://space.bilibili.com/487906612 ZLMediaKit简单介绍 视频监控平台工作流程 登陆 点击对应监控通道 访问ZLMediaKit,进行拉流推流 无人访问时ZLMediaKit断开

    2024年02月06日
    浏览(45)
  • linux搭建 wvp-GB28181-pro国标协议平台全流程

    环境:centos7+, 源码部署。 以下记录来自wiki(只保留了我当前环境下启动成功的操作,详细请看wiki) 请不要使用github 下载zip包的方式下载源码,务必使用git克隆ZLMediaKit的代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码,你可以这样操作 ZLMediaKit采用cm

    2024年04月28日
    浏览(41)
  • wvp-gb28181系统说明

              ZLMRunner 默认zlm初始化: 修改zlm【hook】配置 获取zlm配置 更新zlm信息 启动sipServer 监听信令消息 监听sip信令(udp)  Tcp   处理接收 IPCamera 发来的 SIP 协议请求消息 类型包括: Request message、info、 ack、bye、cancel、invite、 notify、register、subscribe     Response bye、cancel、

    2024年02月09日
    浏览(49)
  • GB28181开源项目WVP部署详细流程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HcH0Aobk-1674895367480)(null)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmrNYHcL-1674895367646)(null)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    2023年04月15日
    浏览(45)
  • 国标28181 开源WVP-PRO项目部署

    感谢大牛的开源框架 https://doc.wvp-pro.cn/#/ 编译好的ZLM流媒体程序,MediaServer 为启动程序,config.ini为配置文件; 里面的secret参数和mediaServerId参数要在后端yml文件修改 application.yml修改 application-dev.yml修改,注意修改redis、mysql,或者直接复制用 正常先启动ZLM再启动wvp,然后接入设备

    2024年02月03日
    浏览(44)
  • [运维] wvp 28181安装部署全流程(ubuntu2204)

    系统版本 : ubuntu2204 编译zlm 安装maven 官网下载地址 安装nodejs 官网下载地址 编译wvp 签出代码 编译前端 编译后端 创建安装目录 创建yml文件 将以下内容复制到 vim 编辑器中 启动数据库和redis 创建安装目录 复制zlm启动文件到安装目录 创建开机启动脚本 将以下内容复制到 vim

    2024年02月11日
    浏览(39)
  • window下搭建WVP+ZLMediaKit服务实现获取GB28181视频(一、WVP服务搭建)

    前段时间因为公司要求,客户需要整合各种摄像机,提出需要使用国标GB28181协议,于是查了各种资料和视频,总算将服务搭建下来了。后续可能还需要整一个linux版的。趁着现在还记得,先将整合的流程记录一下 官方文档:WVP-PRO文档 在官方文档有详细的说明,但是也有一些

    2024年01月20日
    浏览(50)
  • Linux平台下搭建GB28181服务器(WVP+ZLMediakit)

    GB28181(国标28181),全称为《中华人民共和国公共安全视频监控联网系统技术要求》,是中国国家标准委员会发布的一个针对公共安全视频监控领域的标准框架。该标准指导了视频监控设备之间的联网互通,统一管理和控制,并提供了一套包括设备接入、设备管理、视频传输、

    2024年02月06日
    浏览(63)
  • window下搭建WVP+ZLMediaKit服务实现获取GB28181视频(三、WVP+ZLMediaKit服务启动,并连接摄像头)

    前面两篇文章分别介绍了WVP服务和ZLMediaKit服务的搭建,现在介绍这两个服务如何达到通讯效果 配置通讯的mediaServerId和media.id 1、在ZLMediaKit服务第一次启动后,会出现config.ini文件,这个文件在服务没有启动之前是不存在的,打开这个配置文件,在里面找到mediaServerId  2、打开

    2024年02月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包