Ubuntu搭建国标平台wvp-GB28181-pro

2024-01-30 19:52

本文主要是介绍Ubuntu搭建国标平台wvp-GB28181-pro,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 简介
  • 安装和编译
    • 1.查看操作系统信息
    • 2.安装最新版的nodejs
    • 3.安装java环境
    • 4.安装mysql
    • 5.安装redis
    • 6.安装编译器
    • 7.安装cmake
    • 8.安装依赖库
    • 9.编译ZLMediaKit
      • 9.1.编译结果说明
    • 10.编译wvp-GB28181-pro
      • 10.1.编译结果说明
  • 配置
    • 1.WVP-PRO配置文件
      • 1.1.Mysql数据库配置
      • 1.2.REDIS数据库配置
      • 1.3.配置服务启动端口
      • 1.4.配置28181相关信息
      • 1.5.配置ZLMediaKit连接信息
      • 1.6.个性化定制信息配置
    • 2.ZLMediaKit配置文件
      • 2.1.文件使用
      • 2.1.配置
  • 运行测试
    • 1.运行ZLMediaKit
      • 1.1.ZLMediaKit测试命令
    • 2.运行wvp-GB28181-pro
      • 2.1.测试命令
    • 3.添加GB28181设备模拟器
  • 参考资料

简介

官网wvp-GB28181-pro: https://doc.wvp-pro.cn/#/

流媒体服务器: https://github.com/ZLMediaKit/ZLMediaKit

WVP-PRO使用Spring boot开发,maven管理依赖。

参考官网既可安装部署.

为了方便搭建,开源软件以后修改可能导致配置失败,把ZLMediaKit和wvp-GB28181-pro配置文件和项目commit ID记录到仓库中.

https://gitee.com/fedorayang/wvp-gb28181-pro_-zlmedia-kit_config.git

安装和编译

Ubuntu 22.04.3 LTS为例

1.查看操作系统信息

lsb_release -a
#输出一下信息
LSB Version:    core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

2.安装最新版的nodejs

参考 ubuntu安装nodejs环境: https://blog.csdn.net/fedorayang/article/details/135837204

3.安装java环境

sudo apt install -y openjdk-11-jre maven#确认java安装成功
java --version
#输出版本信息
openjdk 11.0.21 2023-10-17
OpenJDK Runtime Environment (build 11.0.21+9-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.21+9-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

4.安装mysql

mysql如果以前安装过其他数据库可能存在冲突,需要完全卸载后安装,具体安装步骤参考 myql入门: https://blog.csdn.net/fedorayang/article/details/135847981

5.安装redis

sudo apt update
sudo apt install redis-server#启动
redis-server#查看Redis是否正常
systemctl status redis
redis-cli
#输入ping返回PONG表示正常

6.安装编译器

sudo apt install build-essential

7.安装cmake

参考文章 cmake入门: https://blog.csdn.net/fedorayang/article/details/134513536

8.安装依赖库

#除了openssl,其他其实都可以不安装
sudo apt install -y libssl-dev
sudo apt install -y libsdl1.2-dev
sudo apt install -y libavcodec-dev
sudo apt install -y libavutil-dev
sudo apt install -y ffmpeg

9.编译ZLMediaKit

git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
git submodule update --init
#编译
mkdir build
cd build
cmake ..
make -j4

9.1.编译结果说明

编译结果在release目录下,主要有三部分组成:

  • MediaServer 进程

    cd ZLMediaKit/release/linux/Debug
    #通过-h可以了解启动参数
    ./MediaServer -h
    
  • c api 的 SDK

头文件在ZLMediaKit/api/include
库文件为:ZLMediaKit/release/linux/Debug/libmk_api.so
  • test_开头的测试程序

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

10.编译wvp-GB28181-pro

git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git#1.编译前端页面
cd wvp-GB28181-pro/web_src/
npm --registry=https://registry.npmmirror.com install
npm run build
#编译完成后会生成目录: wvp-GB28181-pro/src/main/resources/static#2.生成可执行jar
cd wvp-GB28181-pro
mvn package
#编译后生成文件: wvp-GB28181-pro/target/wvp-pro-2.7.0-01260305.jar#3.生成war
cd wvp-GB28181-pro
mvn package -P war
#编译后生成文件: wvp-GB28181-pro/target/wvp-pro-2.7.0-01260312.war

10.1.编译结果说明

最终编译生成的结果在wvp-GB28181-pro/target目录,内容如下:
在这里插入图片描述

配置

有两个配置文件:1.WVP-PRO配置文件;2.ZLMediaKit配置文件.

1.WVP-PRO配置文件

./src/main/resources/application.yml
./target/classes/application.yml
./target/wvp-pro-2.7.0-01260312/WEB-INF/classes/application.yml./src/main/resources/all-application.yml
./target/classes/all-application.yml
./target/wvp-pro-2.7.0-01260312/WEB-INF/classes/all-application.yml

如上all-application.yml,application.yml使用哪一组都可以,这里使用all-application.yml进行修改.

1.1.Mysql数据库配置

这里有两点注意:

  • share数据库删除
  • master数据库wvp2需要修改为wvp,必须要和建立的数据库名称对应
# [必选] jdbc数据库配置
datasource:# mysql配置dynamic:primary: masterdatasource:master:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=trueusername: rootpassword: root123hikari:connection-timeout: 20000             # 是客户端等待连接池连接的最大毫秒数initialSize: 50                       # 连接池初始化连接数maximum-pool-size: 200                # 连接池最大连接数minimum-idle: 10                       # 连接池最小空闲连接数idle-timeout: 300000                  # 允许连接在连接池中空闲的最长时间(以毫秒为单位)max-lifetime: 1200000                 # 是池中连接关闭后的最长生命周期(以毫秒为单位)

MySQL设置

#查看数据库状态
systemctl status mysql
#进入mysql
mysql -u root -p#mysql更改
use mysql;
update user set host='%' where user= 'root';
flush privileges;
select host,user,plugin from user where user='root';
#更改root用户密码为root123,参考上面的配置
alter user 'root'@'%' identified with mysql_native_password by 'root123';
flush privileges;
grant all on *.* to 'root'@'%';
flush privileges;#wvp数据库修改,需要和url: jdbc:mysql://127.0.0.1:3306/wvp?对应
create DATABASE wvp;
use wvp;
source /home/multimedia/gb28181/wvp-GB28181-pro/数据库/初始化-mysql.sql
flush privileges;
exit

1.2.REDIS数据库配置

1.3.配置服务启动端口

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

1.4.配置28181相关信息

sip:#SIP信令服务器IP地址ip: 0.0.0.0port: 5060domain: 4401020049id: 44010200492000000001password: admin123

1.5.配置ZLMediaKit连接信息

#zlm 默认服务器配置
media:# ZLMediaKit的服务ID,必须配置id: FQ3TF8yT83wh5Wvz# [必须修改] zlm服务器的内网IP,sdp-ip与stream-ip使用默认值的情况下,这里不要使用127.0.0.1/0.0.0.0ip: 192.168.1.3# [必须修改] zlm服务器的http.porthttp-port: 80       # [可选] 返回流地址时的ip,置空使用 media.ip#stream-ip:# [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip#sdp-ip:# [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip#hook-ip:  # [可选] zlm服务器的http.sslport, 置空使用zlm配置文件配置#http-ssl-port:# [可选] zlm服务器的rtmp.port, 置空使用zlm配置文件配置#rtmp-port:# [可选] zlm服务器的rtmp.sslport, 置空使用zlm配置文件配置#rtmp-ssl-port:# [可选] zlm服务器的 rtp_proxy.port, 置空使用zlm配置文件配置#rtp-proxy-port:# [可选] zlm服务器的 rtsp.port, 置空使用zlm配置文件配置#rtsp-port:# [可选] zlm服务器的 rtsp.sslport, 置空使用zlm配置文件配置#rtsp-ssl-port:    # [可选] zlm服务器的hook.admin_params=secretsecret: BkPj2ca6QPpY5RccREJq4kAOu9ZEt70x# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试rtp:# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输enable: true# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功port-range: 30000,35000 # 端口范围# [可选] 国标级联在此范围内选择端口发送媒体流,请不要与收流端口范围重合send-port-range: 35002,35006 # 端口范围    
  • id必须和2.1.配置中general.mediaServerId设置一致
  • ip必须正确设置
  • http-port和2.1.配置中http.port相同
  • secret和2.1.配置中api.secret相同
  • rtp和2.1.配置中rtp_proxy.rtp_proxy相同

1.6.个性化定制信息配置

# [根据业务需求配置]
user-settings:# [可选] 服务ID,不写则为000000#server-id:

2.ZLMediaKit配置文件

2.1.文件使用

./release/linux/Debug/config.ini
./conf/config.ini#默认使用./release/linux/Debug/config.ini#修改并保存配置文件后,运行如下命令就能使ZLMediaKit热加载配置文件,而不必先关闭服务然后再开启
killall -1 MediaServer`

2.1.配置

[api]#一些比较敏感的http api在访问时需要提供secret,否则无权限调用#如果是通过127.0.0.1访问,那么可以不提供secretsecret=BkPj2ca6QPpY5RccREJq4kAOu9ZEt70x[general]#服务器唯一id,用于触发hook时区别是哪台服务器mediaServerId=FQ3TF8yT83wh5Wvz[http]#http服务器监听端口port=80[rtp_proxy]#随机端口范围,最少确保36个端口#该范围同时限制rtsp服务器udp端口范围port_range=30000-35000	
  • mediaServerId需要和1.5.配置ZLMediaKit连接信息中的ID设置一致
  • secret需要和1.5.配置ZLMediaKit相同

运行测试

1.运行ZLMediaKit

cd ZLMediaKit/release/linux/Debug
sudo ./MediaServer -c /home/multimedia/gb28181/config/ZLMediaKitConfig.ini

1.1.ZLMediaKit测试命令

http://192.168.1.3/
http://192.168.1.3/webassist/?secret=BkPj2ca6QPpY5RccREJq4kAOu9ZEt70x
https://192.168.1.3/webrtc/

2.运行wvp-GB28181-pro

cd wvp-GB28181-pro/target
#测试命令
sudo java -jar wvp-pro-*.jar --spring.config.location=/home/multimedia/gb28181/config/wvp-GB28181-pro-config.yml

2.1.测试命令

curl localhost:18080http://192.168.1.3:18080/#/login
#用户名: admin
#密码: admin

3.添加GB28181设备模拟器

国标gb28181模拟环境搭建: https://blog.csdn.net/fedorayang/article/details/135498173

1.4.配置28181相关信息

<?xml version="1.0" encoding="utf-8"?>
<config><server_ip>192.168.1.3</server_ip><server_port>5060</server_port><server_id>44010200492000000001</server_id><server_domain>4401020049</server_domain><password>admin123</password><protocol>udp</protocol>
</config>

其他配置项默认.

设备模拟器配置好后,启动wvp-GB28181-pro自动识别到设备.
在这里插入图片描述
流传输模式:UDP,TCP被动模式最常用.

参考资料

国标gb28181保姆级入门教程: https://blog.csdn.net/fedorayang/article/details/135499219

全网首发 开源28181 国产开源系统openeuler 编译ZLMediaKit wvp-GB28181-pro: https://www.bilibili.com/video/BV1hA4y1S7Gw?vd_source=a795ec50b290a151c69819df1d6cb37a

这篇关于Ubuntu搭建国标平台wvp-GB28181-pro的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/661359

相关文章

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.