在搭建的过程中也走过不少弯路,安装了很多版本,每个版本都或多或少有部分问题出现,一致都不能成功,经过多方尝试,最后成功搭建一款使用与本地Windows的GB28181平台。

1、通信流程图

2、流程概括图

3、部署SIP服务器(wvp服务):

3.1、下载wvp-gb28181-pro升级版本的代码到本地

1、下载地址:可直接下载zip包
https://gitcode.net/mirrors/648540858/wvp-GB28181-pro
2、或者用git clone(推荐此方法,巨好用)
git clone https://gitcode.net/mirrors/648540858/wvp-GB28181-pro.git

3.2 配置文件部署(事先安装好redis,此处不在详细说明)

spring:# REDIS数据库配置redis:# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1host: 127.0.0.1# [必须修改] 端口号port: 6379# [可选] 数据库 DBdatabase: 6# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接password: xxx# [可选] 超时时间timeout: 10000# [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置datasource:# 使用mysql 打开23-28行注释, 删除29-36行name: wvpurl: jdbc:mysql://127.0.0.1:3306/wvp?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driver# name: eiot# url: jdbc:sqlite::resource:wvp.sqlite# username:# password:# type: com.alibaba.druid.pool.DruidDataSource# driver-class-name:  org.sqlite.JDBCmax-active: 1min-idle: 1# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:port: 18080# 作为28181服务器的配置
sip:# [必须修改] 本机的IPip: 172.16.1.86# [可选] 28181服务监听的端口port: 5060# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)# 后两位为行业编码,定义参照附录D.3# 3701020049标识山东济南历下区 信息行业接入# [可选]domain: 3402000000# [可选]id: 34020000002000000001# [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验password: 12345678#zlm 默认服务器配置
media:# [可选] zlm服务器唯一id,用于触发hook时区别是哪台服务器,general.mediaServerId
#    id: vm-windowsid: ADGKNQTX036adgjn# [必须修改] zlm服务器的内网IPip: 172.16.1.86# [必须修改] zlm服务器的http.porthttp-port: 8089# [可选] zlm服务器的hook.admin_params=secretsecret: 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
# [可选] 日志配置, 一般不需要改
logging:file:name: logs/wvp.logmax-history: 30max-size: 10MBtotal-size-cap: 300MB
#    level:
#        com.genersoft.iot: info
#        com.genersoft.iot.vmp.storager.dao: info
#        com.genersoft.iot.vmp.gb28181: infolevel:com:genersoft:iot: info# [根据业务需求配置]
user-settings:# 推流直播是否录制record-push-live: falseauto-apply-play: false# 在线文档: swagger-ui(生产环境建议关闭)
swagger-ui:enabled: true# 版本信息, 不需修改
version:version: "@project.version@"description: "@project.description@"artifact-id: "@project.artifactId@"

3.3、修改DeviceMapper.java的add方法,不然添加不了设备到数据库

3.4启动服务器:

4、在启动服务器前,需要配置好流媒体服务器:

在此之前,试过很多版本的流媒体服务器,linux,docker ,windows 的各种都有;

4.1、下载可执行包,配置文件(请提前安装好ffmpeg)

注意:mediaServerId 此ID是一串随机码,而不是IP地址(踩过坑)

general.mediaServerId ADGKNQTX036adgjn
1、使用git下载 地址为:https://gitee.com/XIAOAIlin/wvp-gb28181.git2、如下载失败的,可以直接在获取编译好的安装包
https://gitee.com/XIAOAIlin/wvp-gb28181/tree/master/libs3、配置好config.ini
; auto-generated by mINI class {[api]
apiDebug=1
defaultSnap=./www/logo.png
secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
snapRoot=./www/snap/[ffmpeg]
bin=/usr/bin/ffmpeg
cmd=%s -fflags nobuffer -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264  -f flv %s
log=./ffmpeg/ffmpeg.log
snap=%s -i %s -y -f mjpeg -t 0.001 %s[general]
addMuteAudio=1
enableVhost=0
flowThreshold=1024
fmp4_demand=0
hls_demand=0
maxStreamWaitMS=15000
mediaServerId=ADGKNQTX036adgjn
mergeWriteMS=0
modifyStamp=0
publishToHls=1
publishToMP4=0
resetWhenRePlay=1
rtmp_demand=0
rtsp_demand=0
streamNoneReaderDelayMS=18000
ts_demand=0[hls]
broadcastRecordTs=0
fileBufSize=65536
filePath=./www
segDur=2
segNum=3
segRetain=5[hook]
admin_params=secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
enable=1
on_flow_report=
on_http_access=
on_play=http://172.16.1.86:18080/index/hook/on_play
on_publish=http://172.16.1.86:18080/index/hook/on_publish
on_record_mp4=http://127.0.0.1:18081/api/record/on_record_mp4
on_record_ts=
on_rtsp_auth=
on_rtsp_realm=
on_server_started=http://172.16.1.86:18080/index/hook/on_server_started
on_shell_login=http://172.16.1.86:18080/index/hook/on_shell_login
on_stream_changed=http://172.16.1.86:18080/index/hook/on_stream_changed
on_stream_none_reader=http://172.16.1.86:18080/index/hook/on_stream_none_reader
on_stream_not_found=http://172.16.1.86:18080/index/hook/on_stream_not_found
timeoutSec=20[http]
charSet=utf-8
dirMenu=1
keepAliveSecond=15
maxReqSize=4096
notFound=<html><head><title>404 Not Found</title></head><body bgcolor="white"><center><h1>您访问的资源不存在!</h1></center><hr><center>ZLMediaKit-5.0(build in Mar 18 2021 17:07:55)</center></body></html>
port=8089
rootPath=./www
sendBufSize=65536
sslport=8088[multicast]
addrMax=239.255.255.255
addrMin=239.0.0.0
udpTTL=64[record]
appName=record
fastStart=0
fileBufSize=65536
filePath=./www
fileRepeat=0
fileSecond=3600
sampleMS=500[rtmp]
handshakeSecond=15
keepAliveSecond=15
modifyStamp=0
port=1935
sslport=19350[rtp]
audioMtuSize=600
clearCount=10
maxRtpCount=50
videoMtuSize=1400[rtp_proxy]
dumpDir=
port=10000
timeoutSec=15[rtsp]
authBasic=0
directProxy=1
handshakeSecond=15
keepAliveSecond=15
port=554
sslport=332[shell]
maxReqSize=1024
port=9000; } ---

4.2、启动ZLM

日志:

2022-01-06 10:15:55.618 W MediaServer.exe[2116-10788] SSLUtil.cpp:98 loadPublicKey | error:02001002:system library:fopen:No such file or directory
2022-01-06 10:15:55.618 W MediaServer.exe[2116-10788] SSLUtil.cpp:126 loadPrivateKey | error:2006D080:BIO routines:BIO_new_file:no such file
2022-01-06 10:15:55.618 D MediaServer.exe[2116-7128] util.cpp:340 operator () | Stamp thread started!
2022-01-06 10:15:55.621 I MediaServer.exe[2116-10788] EventPoller.cpp:467 EventPollerPool | 创建EventPoller个数:12
2022-01-06 10:15:55.621 I MediaServer.exe[2116-10788] TcpServer.h:320 start_l | TCP Server listening on 0.0.0.0:554
2022-01-06 10:15:55.622 I MediaServer.exe[2116-10788] TcpServer.h:320 start_l | TCP Server listening on 0.0.0.0:332
2022-01-06 10:15:55.622 I MediaServer.exe[2116-10788] TcpServer.h:320 start_l | TCP Server listening on 0.0.0.0:1935
2022-01-06 10:15:55.622 I MediaServer.exe[2116-10788] TcpServer.h:320 start_l | TCP Server listening on 0.0.0.0:19350
2022-01-06 10:15:55.622 I MediaServer.exe[2116-10788] TcpServer.h:320 start_l | TCP Server listening on 0.0.0.0:8089
2022-01-06 10:15:55.622 I MediaServer.exe[2116-10788] TcpServer.h:320 start_l | TCP Server listening on 0.0.0.0:8088
2022-01-06 10:15:55.623 I MediaServer.exe[2116-10788] TcpServer.h:320 start_l | TCP Server listening on 0.0.0.0:9000
2022-01-06 10:15:55.623 I MediaServer.exe[2116-10788] TcpServer.h:320 start_l | TCP Server listening on 0.0.0.0:10000
2022-01-06 10:15:55.623 I MediaServer.exe[2116-10788] main.cpp:339 start_main | 已启动http api 接口
2022-01-06 10:15:55.626 I MediaServer.exe[2116-10788] main.cpp:341 start_main | 已启动http hook 接口
2022-01-06 10:16:11.473 T MediaServer.exe[2116-9444] HttpSession.cpp:25 HttpSession | 1808836145552(172.16.1.86:4641) 

5、前端UI运行起来(webstorm运行方便npm 直接运行,没有也可)

编译静态页面 cmd 运行:
E:
cd wvp-GB28181\web_src
npm install
npm run build
编译如果报错, 一般都是网络问题, 导致的依赖包下载失败
或者采用cnpm编译
编译完成后在src\main\resources下出现static目录

运行成功:

6、访问页面:成功可实时查看视频

参考文档博客如下:

1、WVP+ZLMediaKit实现NAT穿透推流播放录制,支持IPC、NVR、DVR等设备接入,支持GB28181国标级联

2、GB28181国标协议通讯流程简析以及NVR注册不上等相关问题点记录

3、WVP+ZLMediaKit+MediaServerUI实现摄像头GB28181推流播放录制

4、ZLMediaKit配置文件意义

搭建GB28181本次测试步骤-SIP信令服务器相关推荐

  1. gb28181简单实现sip信令服务器(java版基于springboot):四、sip摄像头心跳保活、推流(tcp/udp)和结束推流

    心跳文本 //摄像头发送过来的Keepalive保活信息 MESSAGE sip:34020000002000000001@192.168.1.201:5060 SIP/2.0 //MESSAGE 方 ...

  2. gb28181简单实现sip信令服务器(java版基于springboot):一、netty创建udp服务器

    以下仅代表个人理解,仅供参考,欢迎大佬纠正!!! maven依赖 <!-- springboot配置依赖 --> <dependency><groupId>org. ...

  3. SIP开源服务器kamalio安装教程

    1. 介绍 kamailio是一款强大的开源的SIP信令服务器.通过一些简单的配置和参数设置即可进行使用,这里介绍在unbuntu-20.04 server版上的安装步骤. 2 安装 2.1 安装依赖 ...

  4. 整机压力测试_一种服务器整机压力的测试方法

    一种服务器整机压力的测试方法 [专利摘要]本发明公开了一种服务器整机压力的测试方法,根据测试内容,配置服务器:安装操作系统,准备测试工具IntelWindowsValidationStressSuit ...

  5. MQTT服务器搭建和测试步骤及遇见的问题

    MQTT服务器搭建和测试步骤及遇见的问题 前言:MQTT服务器有好多种,查看:Servers/Brokers Apache-Apollo:一个代理服务器,在ActiveMQ基础上发展而来,可以支持ST ...

  6. 【网络通信 -- SIP 电话】项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试

    [网络通信 -- SIP 电话]项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试 [1]SIP 服务器 OPENSIPS 搭建 1.1 安装环 ...

  7. 调用ice服务器_Nodejs+socket.io搭建WebRTC信令服务器

    前言 我们在学习 WebRTC 时,首先要把实验环境搭建好,这样我们就可以在上面做各种实验了. 对于 WebRTC 来说,它有一整套规范,如使它使用的接口.使用SDP进行媒体协商.通过ICE收集地址并 ...

  8. Nodejs+socket.io搭建WebRTC信令服务器

    前言 我们在学习 WebRTC 时,首先要把实验环境搭建好,这样我们就可以在上面做各种实验了. 对于 WebRTC 来说,它有一整套规范,如使它使用的接口.使用SDP进行媒体协商.通过ICE收集地址并 ...

  9. GB28181协议视频安防平台EasyGBS国标配置查询步骤及信令示例

    EasyGBS是基于GB28181协议的视频平台,拥有视频直播.录像存储.检索与回放.云台控制.告警上报.语音对讲.平台级联等功能.其中,GB28181协议指的是国家标准GB/T 28181-2016 ...

  10. 阿里云国际版香港服务器测试数据,本次测试使用LemonBench脚本进行。

    多年没有折腾过服务器了,直到最近发现曾经在阿里云获得的75美元赠金竟然过期了?!再加上自己一直都有重新把博客建起来的想法,便打算入手一台服务器把博客搭起来.因为本人是一位穷逼学生党,自然就只能选择便宜 ...

最新文章

  1. Python 参考手册
  2. mysql 备库 hang住_mysql主键的缺少导致备库hang住
  3. python的全局变量能暂存数据吗_【Python】Python之全局变量
  4. 【ArcGIS风暴】ArcGIS10.6图斑椭球面积计算原理与方法
  5. NDoc修改版,支持中文注释及中文界面。
  6. 代码重构的方法和经验_关于烂代码优化重构的几点经验
  7. C语言实现调用python绘图
  8. c语言最小公倍数最简单求法,c语言最小公倍数与最大公约数的求法集锦
  9. java实现,获取今日0时0分0秒(最小时间)-获取今日23时59分59秒(最大时间) -线程安全方法
  10. 【CTA系列】Kelly公式在最优f问题上的应用
  11. 如何将mp4格式的电视剧转换成gif动图呢
  12. 【MySQL必知必会--理论】
  13. iMX6UL lvgl开发备忘
  14. 活力无限的J2ME技术
  15. MySQL数据库乱码(中文变问号)问题解决
  16. B站JavaScript从入门到精通Blue石川老师视频部分代码_运动升级_链式运动_土豆网
  17. 分析如何编写一个timer程序(以blt_soft_timer为例)
  18. 卡尔曼及扩展卡尔曼滤波详细推导-来自DR_CAN视频
  19. 《爆款文案》的读后感作文3000字
  20. 用Python制作学生管理系统

热门文章

  1. SpringCloudOAuth2之验证资源服务器的配置
  2. android源码分析辅助工具
  3. 灰度决策--如何解决棘手复杂问题
  4. SIPp 安装及使用
  5. 电子科技大学计算机学生水平,近三年的学生评价结果-电子科技大学.DOC
  6. 3DMAX 卸载方法,完美彻底卸载清除干净3DMAX各种残留注册表和文件【转载】
  7. 颜色分类Python解法
  8. 关于vue创建项目失败的原因
  9. 《刘润·5分钟商学院》学习总结01
  10. 转:C#数字、16进制字符串和字节之间互转 bin2hex