wvp与GB28181介绍
学习原因:需要开发一款视频监控集中平台,兼容海康、大华等视频厂家NVR和摄像头,共几百套设备,但是不需要每天实时监控,基本上每个NVR和摄像头每天观看1次左右,同时可以控制云台和回放,需要兼容大部分浏览器,可节约服务器资源。
海康、大华WEB控件开发问题很多,谷歌不能装插件,型号有些不兼容,插件卡死,视频预览回放无进度条,十分不方便。(主要是客户不太满意,又不多给点钱买服务器)
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断开拉流推流
- 心跳检测,检测SIP信令服务是否可用
1.流媒体服务器视频协议介绍
- RTSP 自行百度
- RTMP 自行百度
- WEBRTC 自行百度
- FLV 自行百度
- HLS 自行百度
- GB28181 自行百度
- SIP 自行百度
- ONVIF 自行百度
- h264 自行百度
- h265 自行百度
2.市面上的流媒体服务器
青柿:收费,可以在浏览器播放
LiveNVR:收费,可以在浏览器播放
ZLMediaKit:免费,针对安防GB28181,无人观看可以自行断流,需要额外开发web服务器
SRS:免费,主要针对互联网
webrtc-streamer:免费,主要针对互联网
其他就不多做介绍
3.wvp-GB28181-pro框架需要学习的框架和工具
3.1 其他工具
VLC:桌面播放器,可以播放rtsp
FFmpeg:强大的编解码器,自带播放器,学习其基本的编解码命令运用
mediaInfo:媒体文件格式解析
wireshark抓包工具
3.2 wvp-GB28181-pro框架
springBoot Java开发框架
mysql关系数据库
redis非关系数据库
ZLMediaKit框架
SIP信令服务的使用
4.工具准备
1.Windows用户需要安装Ubuntu
需要具备基本的linux开发命令基础
2.IDEA
3.Redis
4.mysql数据库
5.ZLMediaKit流媒体框架
项目整合和配置
1.打开IDEA,通过git导入wvp-GB28181-pro项目
# REDIS数据库配置
redis:
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
host: 127.0.0.1
# [必须修改] 端口号
port: 6379
# [可选] 数据库 DB
database: 1
# [可选] 超时时间
timeout: 10000
# mysql数据源
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/wvp2?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true
username: root
password: root
druid:
initialSize: 10 # 连接池初始化连接数
maxActive: 200 # 连接池最大连接数
minIdle: 5 # 连接池最小空闲连接数
maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
keepAlive: true # 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
validationQuery: select 1 # 检测连接是否有效sql,要求是查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
testWhileIdle: true # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
testOnBorrow: false # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
testOnReturn: false # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
poolPreparedStatements: false # 是否開啟PSCache,並且指定每個連線上PSCache的大小
timeBetweenEvictionRunsMillis: 60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒
minEvictableIdleTimeMillis: 300000 # 配置一個連線在池中最小生存的時間,單位是毫秒
filters: stat,slf4j # 配置监控统计拦截的filters,监控统计用的filter:sta, 日志用的filter:log4j
useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000
#[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
port: 18080
# 作为28181服务器的配置
sip:
# [必须修改] 本机的IP
ip: 192.168.1.3
# [可选] 28181服务监听的端口
port: 15060
# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
# 后两位为行业编码,定义参照附录D.3
# 3701020049标识山东济南历下区 信息行业接入
# [可选]
domain: 3402000000
# [可选]
id: 34020000002000000001
# [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
password: 123456789
#zlm 默认服务器配置
media:
id: your_server_id
# [必须修改] zlm服务器的内网IP
ip: 192.168.1.3
# [必须修改] zlm服务器的http.port
http-port: 8080
# [可选] zlm服务器的hook.admin_params=secret
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
rtp:
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
enable: true
# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
port-range: 30000,30500 # 端口范围
# [可选] 国标级联在此范围内选择端口发送媒体流,
send-port-range: 30000,30500 # 端口范围
# 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用
record-assist-port: 0
# [可选] 日志配置, 一般不需要改
logging:
config: classpath:logback-spring-local.xml
2.项目启动
idea启动Java项目,打开redis,编译并打开ZLMediaKit的MediaServer,编译wvp-GB28181-pro的web_src模块打开MySQL服务;
3.摄像头配置
4.登陆界面
用户admin
密码admin
5.预览界面
6.云台控制
7.ZLMediaKit推流成功界面
注意事项
ZLMediaKit配置文件config.ini和 wvp-GB28181-pro的配置应该一致文章来源:https://www.toymoban.com/news/detail-461293.html
media:
id: your_server_id
# [必须修改] zlm服务器的内网IP
ip: 192.168.1.3
# [必须修改] zlm服务器的http.port
http-port: 8080
# [可选] zlm服务器的hook.admin_params=secret
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
后续准备进行现场并发测试和进行二次开发以适应客户的业务系统文章来源地址https://www.toymoban.com/news/detail-461293.html
到了这里,关于【流媒体视频监控平台开发wvp-GB28181-pro】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!