广告
返回顶部
首页 > 资讯 > 操作系统 >Linux平台下搭建GB28181服务器(WVP+ZLMediakit)
  • 731
分享到

Linux平台下搭建GB28181服务器(WVP+ZLMediakit)

linux流媒体服务GB28181ZLMediakitWVP 2023-10-18 14:10:08 731人浏览 八月长安
摘要

文章目录 什么是GB28181平台依赖项搭建步骤配置Redis和MySQL配置ZLMediakit配置WVP 使用效果封装成Docker镜像 什么是GB28181 GB28181

文章目录

什么是GB28181

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

GB28181标准采用了基于IP网络架构,通过使用 SIP(Session Initiation Protocol,会话初始协议) 实现设备的接入通信和管理,通过使用RTSP(Real-Time Streaming Protocol 实时流传输协议) 标准协议实现设备之间的视频流传输,包括实时预览、录像回放等操作。

总体而言,GB28181 标准的出台旨在提高公共安全视频监控系统的互联互通能力,促进不同厂家设备的兼容性和互操作性,确保系统的可靠性、稳定性和安全性。它对于中国的公共安全行业具有重要意义,并在国内得到广泛的推广和应用。

平台依赖项

linux平台下搭建GB28181服务器,主要使用的库包括WVP和ZLMediakit,两个项目开源地址分别如下所示:
WVP
https://github.com/648540858/wvp-GB28181-pro
ZLMediakit
https://github.com/ZLMediaKit/ZLMediaKit

WVP是基于GB/T 28181-2016标准实现的流媒体平台,负责处理SIP信令,实现国产化设备的接入和管理。 而ZLMediakit作为流媒体服务器负责视频流的处理和转换。

搭建步骤

首先编译WVP和ZLMediakit,编译过程可以参考官方的教程,写的十分详细,这里就不多做介绍了。
WVP和ZLMediakit之间的关系图如下图所示:

在这里插入图片描述

配置RedisMysql

由于WVP依赖于Redis和mysql这里先安装Mysql和Redis,安装流程如下所示:
安装MySQL

# ubuntu 安装 MySQL sudo apt install mysql-server  # 检查MySQL是否在运行sudo systemctl status mysql 

安装Redis

# 安装Redissudo apt updatesudo apt install redis-server redis-cli# 查看Redis的运行状态sudo systemctl status redis-server

为了保障数据的安全性这里我们修改一下MySQL和Redis的缺省密码
修改MySQL的root密码

# 默认没密码 不用输入 直接按回车就可以了mysql -u root -p# 在MySQL终端下 更新root密码mysql> use mysql;mysql> UPDATE uer SET authentication_string = PASSWord('password') WHERE User = 'root';# 刷新权限表mysql> flush privileges;# 退出mysql> quit

修改Redis的密码

# 打开Redis的配置文件,通常位于/etc/redis/redis.conf# 在配置文件中,找到并修改以下行(如果没有,则添加)requirepass your_password# 重启Redissudo systemctl restart redis# 如果Redis没有被设置成服务也可以通过下面的命令启动服务端  nohup redis-server /etc/redis/redis.conf &

MySQL的默认编码是latin1,在执行WVP的Init.SQL脚本的时候,会报乱码错误,导致服务不可用,我们需要将MySQL的默认编码修改成UTF-8。 修改方式如下:
找到 my.cnf 配置文件, 该文件一般在/etc/mysql目录下, 在文件中添加如下配置:

[mysqld]character_set_server = utf8collation_server     = utf8_general_ci

也可以在SQL命令中指定字符编码方式:

reate table wvp_log (                         id serial primary key ,                         name character varying(50) CHARACTER SET utf8 COLLATE utf8_general_ci,                         type character varying(50))CHARACTER SET utf8 COLLATE utf8_general_ci;

当然修改编码的方式还有很多,这里只介绍这两种。修改完配置之后,重启mysql服务,重启方式如下:

service mysql restart

配置ZLMediakit

配置完成Redis和MySQL之后, 我们先启动ZLMediakit, 启动命令如下:

# 后台运行输出nohup MediaServer -c ./config.ini  > /dev/null 2>&1 &

ZLMediakit的配置文件config.ini 如下所示(省略不重要的配置):

[api]# secret 值用来鉴权处理...secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc...[general]...# ZLMediakit的ID mediaServerId=my_zlmediakit_id...[hook]# 用作鉴权处理admin_params=secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc[Http]# http的端口号,通过这个端口进行配置处理port=18800[protocol]# 是否开启hlsenable_hls=0# 是否开启rtmpenable_rtmp=1# 是否开启rtspenable_rtsp=1# 是否开启tsenable_ts=0[rtmp]# rtmp的端口号port=1935[rtsp]# rtsp的端口号port=554

配置WVP

ZLMediakit 配置完成之后,我们就可以启动WVP了.

WVP的配置文件application.yml如下所示(省略了不重要的配置)

spring:  # REDIS数据库配置  redis:    # [必须修改] Redis服务器IP, REDIS安装在本机使用127.0.0.1    host: 127.0.0.1    # [必须修改] Redis端口号    port: 6379    # [可选] 数据库 DB    database: 7    # [可选] Redis访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接    password: redis_passwd    # mysql数据源  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&allowPublicKeyRetrieval=true    # MySQL的账号密码    username: root    password: root_passwd#[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口server:  port: 8050# 作为28181服务器的配置sip:  # [必须修改] 本机的IP,对应你的网卡,监听什么ip就是使用什么网卡,  # 如果要监听多张网卡,可以使用逗号分隔多个IP, 例如: 192.168.1.4,10.0.0.4  # 如果不明白,就使用0.0.0.0,大部分情况都是可以的  # 请不要使用127.0.0.1,任何包括localhost在内的域名都是不可以的。  ip: 0.0.0.0  # 28181服务监听的端口  port: 18116  # 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)  # 后两位为行业编码,定义参照附录D.3  domain: 4101050000  id: 41010500002000000001  # SIP验证密码  password: sip_passwd #zlm 默认服务器配置media:  # 和zlm config.ini中的mediaServerId 保持一致  id: my_zlmediakit_id  # [必须修改] zlm服务器的内网IP  ip: 127.0.0.1  # 和zlm config.ini中的http.port保持一致  http-port: 80  # 返回流地址时的ip,这里需要设置为本机的实际IP地址, 置空使用 media.ip  stream-ip: 192.168.0.0  # wvp在国标信令中使用的ip,这里需要设置为本机的实际IP地址, 置空使用 media.ip  sdp-ip: 192.168.0.0  # 和zlm config.ini中的rtmp.port/rtsp.port保持一致  rtmp-port: 1935  rtsp-port: 5545    # 和zlm服务器的hook.admin_params=secret保持一致  secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc  rtp:    # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输    enable: true    # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功    port-range: 30000,30500 # 端口范围    # [可选] 国标级联在此范围内选择端口发送媒体流,    send-port-range: 30000,30500 # 端口范围  # 辅助录像服务这里0为关闭  record-assist-port: 0user-settings:  #关闭推流鉴权  push-authority: false  record-push-live: false  auto-apply-play: false 

由于WVP启动的时候需要用到一些数据库表,包括设备表、用户名表等, 以这里先调用WVP提供的SQL脚本初始化对应的数据库信息。
WVP提供的初始化SQL脚本的地址为wvp/sql/init.sql。

# 创建数据库wvpmysql -u root -proot_passwd -e "CREATE DATABASE wvp"# 在wvp中执行init.sql脚本 初始化对应的数据库表mysql -u root -proot_passwd wvp < ./sql/init.sql

初始化完成之后,我们就可以启动wvp的服务了启动命令如下所示:

java -jar ./wvp/wvp-pro.jar --spring.config.location=./conf/application.yml

使用效果

WVP+ZLM启动成功之后,在浏览器中输入IP:server.port/#/login就可以进入WVP的登录界面了登录界面如下所示:

在这里插入图片描述

WVP默认的账户和密码都是admin
登录之后的界面如下所示:
在这里插入图片描述

在摄像头中配置WVP-GB28181平台的信息,注册对应的设备信息,这里以官方提供的海康摄像头为例进行说明:

在这里插入图片描述

摄像头中的配置和application.yml中的配置项的对应关系如下所示:
配置项1 对应着sip.password
配置项2 对应着sip.port
配置项3 对应着sip.domain
配置项4 对应着sip.ip
配置项5 对应着sip.id

配置完成之后,过一段时间我们就可以在WVP的国标设备中查看到对应的设备信息了。

封装成Docker镜像

把GB28181服务器封装成docker镜像,主要工作就是把WVP+ZLM以及其依赖的环境封放到Docker镜像中,这里一些流程化的细节不做展开讨论。着重说明一下端口开放问题,官方提供的端口开放列表如下:

服务端口类型必选
wvpserver.porttcp
wvpsip.porttcp/udp
zlmhttp.porttcp
zlmhttp.sslporttcp
zlmrtmp.porttcp
zlmrtmp.sslporttcp
zlmrtsp.portudp/tcp
zlmrtsp.sslportudp/tcp
zlmrtp_proxy.portudp/tcp单端口开放
zlmrtp.port-rangeudp/tcp多端口开放

GB28281服务器很多端口是既要开放UDP也要开发TCP的,所以docker镜像如果只映射TCP端口的话, 会出现服务访问失败的问题。
下面以创建GB28181镜像的命令为例说明一下docker镜像如何做端口映射:

docker create -it --privileged=true --restart=always \-p zlm.rtmp.port:zlm.rtmp.port -p zlm.rtsp.port:zlm.rtsp.port  -p wvp.WEB.port:wvp.web.port -p wvp.sip.port:wvp.sip.port/tcp  -p wvp.sip.port:wvp.sip.port/udp \-p 30000-30500:30000-30500/tcp -p 30000-30500:30000-30500/udp \-p zlm.rtp.port:zlm.rtp.port/tcp -p zlm.rtp.port:zlm.rtp.port/udp \--name=wvp_zlm my_gb28181_image

来源地址:https://blog.csdn.net/yang1fei2/article/details/132223894

--结束END--

本文标题: Linux平台下搭建GB28181服务器(WVP+ZLMediakit)

本文链接: https://www.lsjlt.com/news/431323.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux平台下搭建GB28181服务器(WVP+ZLMediakit)
    文章目录 什么是GB28181平台依赖项搭建步骤配置Redis和MySQL配置ZLMediakit配置WVP 使用效果封装成Docker镜像 什么是GB28181 GB28181...
    99+
    2023-10-18
    linux 流媒体服务 GB28181 ZLMediakit WVP
  • Windows平台SSH服务器搭建
    Windows平台SSH服务器1、老牌SSH软件“F-Secure SSH”   //http://blog.csdn.net/tianya_lu/article/details/17271929   ...
    99+
    2023-06-04
  • 怎么搭建云服务器平台
    本篇内容介绍了“怎么搭建云服务器平台”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!关于云服务器平台,可以说是最常见的一个服务应用设备,然后按...
    99+
    2023-06-07
  • 搭建亚马逊服务器平台
    1. 注册 AWS 账号 首先,你需要注册一个 AWS 账号。在注册过程中,你需要提供一些个人信息和信用卡信息。AWS 提供了一些免费的服务,但是你需要提供信用卡信息以便在超出免费额度时进行付款。 2. 创建 EC2 实例 在 AWS 控...
    99+
    2023-10-26
    亚马逊 服务器 平台
  • Linux下搭建Git服务器
    目录 步骤一.安装Git: 步骤二.服务器端创建git用户(管理Git服务) 服务器端的Git配置公钥 生成rsa证书文件 步骤三.服务器端创建Git仓库 步骤四.客户端clone服务器端git仓库 1、在客户端创建本地仓库 2、客户端创建...
    99+
    2023-09-21
    linux git 运维
  • Linux下搭建FTP服务器
    Linux下搭建FTP服务器 FTP协议:文件传输协议(File Transfer Protocol) 协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的一个标准FTP运行在OSI模型的应用...
    99+
    2023-09-06
    linux 服务器 网络
  • 服务器平台搭建怎么维护管理
    服务器平台搭建后需要进行维护和管理,以下是一些常见的维护和管理方法:1. 安全管理:定期更新操作系统、数据库等软件补丁,设置防火墙、...
    99+
    2023-06-11
    服务器平台 服务器
  • 使用阿里云服务器搭建公共平台
    公共平台是一个面向公众开放的服务,可以为用户提供各种功能和服务。在构建公共平台时,我们需要选择合适的服务器平台,以保证平台的稳定性和可靠性。本文将介绍如何使用阿里云服务器搭建公共平台,并分享一些实用的经验和技巧。 一、什么是阿里云服务器阿里...
    99+
    2023-10-31
    阿里 服务器 平台
  • Linux下怎么搭建git服务器
    这篇文章主要介绍Linux下怎么搭建git服务器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理我们将以 Centos 为例搭建 G...
    99+
    2023-06-27
  • Linux下怎么搭建CSVN服务器
    小编给大家分享一下Linux下怎么搭建CSVN服务器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!服务器要求组件:最小化安装都可以(亲测),另外必须组件:jdk-...
    99+
    2023-06-28
  • Linux下如何搭建Git服务器
    这篇文章将为大家详细讲解有关Linux下如何搭建Git服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Git是一款免费、开源的分布式版本控制系统。众所周知的Github便是基于Git的开源代码库以及版...
    99+
    2023-06-28
  • linux下FastDFS搭建图片服务器
    目录服务器规划一、安装系统组件二、安装fastdfs三、配置图片服务器文件总结服务器规划 服务器名称 IP地址和端口 ...
    99+
    2022-06-04
    FastDFS搭建图片服务器单实例 Linux下FastDFS图片服务器
  • Linux下怎么搭建SFTP服务器
    这篇文章主要介绍“Linux下怎么搭建SFTP服务器”,在日常操作中,相信很多人在Linux下怎么搭建SFTP服务器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下怎么搭建SFTP服务器”的疑惑有所...
    99+
    2023-07-02
  • 怎样搭建一台Linux媒体服务器
    这篇文章给大家介绍怎样搭建一台Linux媒体服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。图1:ZaReason的MediaBox。几乎任何Linux都能成为出色的媒体服务器系统,因为它占用资源少、运行又稳定,所...
    99+
    2023-06-13
  • Linux下nfs服务器的搭建技巧
    这篇文章主要讲解了“Linux下nfs服务器的搭建技巧 ”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下nfs服务器的搭建技巧 ”吧!使用linux进行嵌入式开发的时候,为了方便开...
    99+
    2023-06-12
  • 如何使用阿里云服务器搭建刷课平台
    随着互联网的普及和科技的发展,越来越多的网络课程被开发出来,为广大学生和成人提供了方便快捷的学习方式。然而,许多在线课程的资源却需要付费才能获取,这无疑增加了学习的难度和成本。因此,许多学习者开始寻求免费获取课程资源的方法。其中,刷课已经成...
    99+
    2023-10-31
    阿里 如何使用 服务器
  • 服务器云平台搭建怎么降低网络延迟
    服务器云平台搭建降低网络延迟的方法:1、重新启动网络,缓解调制解调器或路由器的缓存;2、关闭占用带宽的程序,减少使用的带宽量,或根据...
    99+
    2023-02-08
    服务器云平台 服务器
  • Linux下怎么搭建私有CA服务器
    这篇文章主要介绍了Linux下怎么搭建私有CA服务器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下怎么搭建私有CA服务器文章都会有所收获,下面我们一起来看看吧。CA 是认证机构的国际通称,它是对数字...
    99+
    2023-06-28
  • Linux下如何搭建Squid代理服务器
    这篇文章给大家分享的是有关Linux下如何搭建Squid代理服务器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Squid是基于Unix的代理服务器(proxy server),它缓存比起点源点更接近请求者的互联...
    99+
    2023-06-28
  • Linux下如何搭建日志服务器syslog
    这篇文章主要为大家展示了“Linux下如何搭建日志服务器syslog”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何搭建日志服务器syslog”这篇文章吧。在Unix类操作系统上,...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作