wvp與GB28181介紹
學(xué)習(xí)原因:需要開發(fā)一款視頻監(jiān)控集中平臺(tái),兼容海康、大華等視頻廠家NVR和攝像頭,共幾百套設(shè)備,但是不需要每天實(shí)時(shí)監(jiān)控,基本上每個(gè)NVR和攝像頭每天觀看1次左右,同時(shí)可以控制云臺(tái)和回放,需要兼容大部分瀏覽器,可節(jié)約服務(wù)器資源。
海康、大華WEB控件開發(fā)問(wèn)題很多,谷歌不能裝插件,型號(hào)有些不兼容,插件卡死,視頻預(yù)覽回放無(wú)進(jìn)度條,十分不方便。(主要是客戶不太滿意,又不多給點(diǎn)錢買服務(wù)器)
1.原有視頻監(jiān)控,基于???、大華web控件和SDK
2.開源wvp-GB28181-pro
gitee地址:https://gitee.com/pan648540858/wvp-GB28181-pro.git
B站大佬北小菜:https://space.bilibili.com/487906612
ZLMediaKit簡(jiǎn)單介紹
視頻監(jiān)控平臺(tái)工作流程
- 登陸
- 點(diǎn)擊對(duì)應(yīng)監(jiān)控通道
- 訪問(wèn)ZLMediaKit,進(jìn)行拉流推流
- 無(wú)人訪問(wèn)時(shí)ZLMediaKit斷開拉流推流
- 心跳檢測(cè),檢測(cè)SIP信令服務(wù)是否可用
1.流媒體服務(wù)器視頻協(xié)議介紹
- RTSP 自行百度
- RTMP 自行百度
- WEBRTC 自行百度
- FLV 自行百度
- HLS 自行百度
- GB28181 自行百度
- SIP 自行百度
- ONVIF 自行百度
- h264 自行百度
- h265 自行百度
2.市面上的流媒體服務(wù)器
青柿:收費(fèi),可以在瀏覽器播放
LiveNVR:收費(fèi),可以在瀏覽器播放
ZLMediaKit:免費(fèi),針對(duì)安防GB28181,無(wú)人觀看可以自行斷流,需要額外開發(fā)web服務(wù)器
SRS:免費(fèi),主要針對(duì)互聯(lián)網(wǎng)
webrtc-streamer:免費(fèi),主要針對(duì)互聯(lián)網(wǎng)
其他就不多做介紹
3.wvp-GB28181-pro框架需要學(xué)習(xí)的框架和工具
3.1 其他工具
VLC:桌面播放器,可以播放rtsp
FFmpeg:強(qiáng)大的編解碼器,自帶播放器,學(xué)習(xí)其基本的編解碼命令運(yùn)用
mediaInfo:媒體文件格式解析
wireshark抓包工具
3.2 wvp-GB28181-pro框架
springBoot Java開發(fā)框架
mysql關(guān)系數(shù)據(jù)庫(kù)
redis非關(guān)系數(shù)據(jù)庫(kù)
ZLMediaKit框架
SIP信令服務(wù)的使用
4.工具準(zhǔn)備
1.Windows用戶需要安裝Ubuntu
需要具備基本的linux開發(fā)命令基礎(chǔ)
2.IDEA
3.Redis
4.mysql數(shù)據(jù)庫(kù)
5.ZLMediaKit流媒體框架
項(xiàng)目整合和配置
1.打開IDEA,通過(guò)git導(dǎo)入wvp-GB28181-pro項(xiàng)目
# REDIS數(shù)據(jù)庫(kù)配置
redis:
# [必須修改] Redis服務(wù)器IP, REDIS安裝在本機(jī)的,使用127.0.0.1
host: 127.0.0.1
# [必須修改] 端口號(hào)
port: 6379
# [可選] 數(shù)據(jù)庫(kù) DB
database: 1
# [可選] 超時(shí)時(shí)間
timeout: 10000
# mysql數(shù)據(jù)源
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 # 連接池初始化連接數(shù)
maxActive: 200 # 連接池最大連接數(shù)
minIdle: 5 # 連接池最小空閑連接數(shù)
maxWait: 60000 # 獲取連接時(shí)最大等待時(shí)間,單位毫秒。配置了maxWait之后,缺省啟用公平鎖,并發(fā)效率會(huì)有所下降,如果需要可以通過(guò)配置useUnfairLock屬性為true使用非公平鎖。
keepAlive: true # 連接池中的minIdle數(shù)量以內(nèi)的連接,空閑時(shí)間超過(guò)minEvictableIdleTimeMillis,則會(huì)執(zhí)行keepAlive操作。
validationQuery: select 1 # 檢測(cè)連接是否有效sql,要求是查詢語(yǔ)句,常用select 'x'。如果validationQuery為null,testOnBorrow、testOnReturn、testWhileIdle都不會(huì)起作用。
testWhileIdle: true # 建議配置為true,不影響性能,并且保證安全性。申請(qǐng)連接的時(shí)候檢測(cè),如果空閑時(shí)間大于timeBetweenEvictionRunsMillis,執(zhí)行validationQuery檢測(cè)連接是否有效。
testOnBorrow: false # 申請(qǐng)連接時(shí)執(zhí)行validationQuery檢測(cè)連接是否有效,做了這個(gè)配置會(huì)降低性能。
testOnReturn: false # 歸還連接時(shí)執(zhí)行validationQuery檢測(cè)連接是否有效,做了這個(gè)配置會(huì)降低性能。
poolPreparedStatements: false # 是否開啟PSCache,並且指定每個(gè)連線上PSCache的大小
timeBetweenEvictionRunsMillis: 60000 # 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閒連線,單位是毫秒
minEvictableIdleTimeMillis: 300000 # 配置一個(gè)連線在池中最小生存的時(shí)間,單位是毫秒
filters: stat,slf4j # 配置監(jiān)控統(tǒng)計(jì)攔截的filters,監(jiān)控統(tǒng)計(jì)用的filter:sta, 日志用的filter:log4j
useGlobalDataSourceStat: true # 合并多個(gè)DruidDataSource的監(jiān)控?cái)?shù)據(jù)
# 通過(guò)connectProperties屬性來(lái)打開mergeSql功能;慢SQL記錄
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000
#[可選] WVP監(jiān)聽的HTTP端口, 網(wǎng)頁(yè)和接口調(diào)用都是這個(gè)端口
server:
port: 18080
# 作為28181服務(wù)器的配置
sip:
# [必須修改] 本機(jī)的IP
ip: 192.168.1.3
# [可選] 28181服務(wù)監(jiān)聽的端口
port: 15060
# 根據(jù)國(guó)標(biāo)6.1.2中規(guī)定,domain宜采用ID統(tǒng)一編碼的前十位編碼。國(guó)標(biāo)附錄D中定義前8位為中心編碼(由省級(jí)、市級(jí)、區(qū)級(jí)、基層編號(hào)組成,參照GB/T 2260-2007)
# 后兩位為行業(yè)編碼,定義參照附錄D.3
# 3701020049標(biāo)識(shí)山東濟(jì)南歷下區(qū) 信息行業(yè)接入
# [可選]
domain: 3402000000
# [可選]
id: 34020000002000000001
# [可選] 默認(rèn)設(shè)備認(rèn)證密碼,后續(xù)擴(kuò)展使用設(shè)備單獨(dú)密碼, 移除密碼將不進(jìn)行校驗(yàn)
password: 123456789
#zlm 默認(rèn)服務(wù)器配置
media:
id: your_server_id
# [必須修改] zlm服務(wù)器的內(nèi)網(wǎng)IP
ip: 192.168.1.3
# [必須修改] zlm服務(wù)器的http.port
http-port: 8080
# [可選] zlm服務(wù)器的hook.admin_params=secret
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
# 啟用多端口模式, 多端口模式使用端口區(qū)分每路流,兼容性更好。 單端口使用流的ssrc區(qū)分, 點(diǎn)播超時(shí)建議使用多端口測(cè)試
rtp:
# [可選] 是否啟用多端口模式, 開啟后會(huì)在portRange范圍內(nèi)選擇端口用于媒體流傳輸
enable: true
# [可選] 在此范圍內(nèi)選擇端口用于媒體流傳輸, 必須提前在zlm上配置該屬性,不然自動(dòng)配置此屬性可能不成功
port-range: 30000,30500 # 端口范圍
# [可選] 國(guó)標(biāo)級(jí)聯(lián)在此范圍內(nèi)選擇端口發(fā)送媒體流,
send-port-range: 30000,30500 # 端口范圍
# 錄像輔助服務(wù), 部署此服務(wù)可以實(shí)現(xiàn)zlm錄像的管理與下載, 0 表示不使用
record-assist-port: 0
# [可選] 日志配置, 一般不需要改
logging:
config: classpath:logback-spring-local.xml
2.項(xiàng)目啟動(dòng)
idea啟動(dòng)Java項(xiàng)目,打開redis,編譯并打開ZLMediaKit的MediaServer,編譯wvp-GB28181-pro的web_src模塊打開MySQL服務(wù);
3.攝像頭配置
4.登陸界面
用戶admin
密碼admin
5.預(yù)覽界面
6.云臺(tái)控制
7.ZLMediaKit推流成功界面
注意事項(xiàng)
ZLMediaKit配置文件config.ini和 wvp-GB28181-pro的配置應(yīng)該一致文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-461293.html
media:
id: your_server_id
# [必須修改] zlm服務(wù)器的內(nèi)網(wǎng)IP
ip: 192.168.1.3
# [必須修改] zlm服務(wù)器的http.port
http-port: 8080
# [可選] zlm服務(wù)器的hook.admin_params=secret
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
后續(xù)準(zhǔn)備進(jìn)行現(xiàn)場(chǎng)并發(fā)測(cè)試和進(jìn)行二次開發(fā)以適應(yīng)客戶的業(yè)務(wù)系統(tǒng)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-461293.html
到了這里,關(guān)于【流媒體視頻監(jiān)控平臺(tái)開發(fā)wvp-GB28181-pro】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!