README

开箱即用的国标28181和部标808+1078协议视频平台

WEB VIDEO PLATFORM是一个基于GB28181-2016、部标808、部标1078标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将不带国标功能的摄像机/直播流/直播推流转发到其他国标平台。
流媒体服务基于@夏楚 ZLMediaKit https://github.com/ZLMediaKit/ZLMediaKit
播放器使用@dexter jessibuca https://github.com/langhuihui/jessibuca/tree/v3
播放器使用@Numberwolf-Yanlong h265web.js https://github.com/numberwolf/h265web.js
前端页面基于vue-admin-template构建 https://github.com/PanJiaChen/vue-admin-template?tab=readme-ov-file
应用场景:
- 支持浏览器无插件播放摄像头视频。
- 支持国标设备(摄像机、平台、NVR等)设备接入
- 支持rtsp, rtmp,直播设备设备接入,充分利旧。
- 支持国标级联。多平台级联。跨网视频预览。
- 支持跨网网闸平台互联。
文档
wvp使用文档 https://doc.wvp-pro.cn
ZLM使用文档 https://github.com/ZLMediaKit/ZLMediaKit
gitee仓库
https://gitee.com/pan648540858/wvp-GB28181-pro.git
截图
登录页面
|
首页
|
分屏播放
|
国标设备列表
|
行政区划管理
|
业务分组管理
|
录制计划
|
平台信息
|
功能特性
- [X] 集成web界面
- [X] 兼容性良好
- [X] 跨平台服务,一次编译多端部署, 可以同时用于x86和arm架构
- [X] 接入设备
- [X] 视频预览
- [X] 支持主码流子码流切换
- [X] 无限制接入路数,能接入多少设备只取决于你的服务器性能
- [X] 云台控制,控制设备转向,拉近,拉远
- [X] 预置位查询,使用与设置
- [X] 查询NVR/IPC上的录像与播放,支持指定时间播放与下载
- [X] 无人观看自动断流,节省流量
- [X] 视频设备信息同步
- [X] 离在线监控
- [X] 支持直接输出RTSP、RTMP、HTTP-FLV、Websocket-FLV、HLS多种协议流地址
- [X] 支持通过一个流地址直接观看摄像头,无需登录以及调用任何接口
- [X] 支持UDP和TCP两种国标信令传输模式
- [X] 支持UDP和TCP两种国标流传输模式
- [X] 支持检索,通道筛选
- [X] 支持通道子目录查询
- [X] 支持过滤音频,防止杂音影响观看
- [X] 支持国标网络校时
- [X] 支持播放H264和H265
- [X] 报警信息处理,支持向前端推送报警信息
- [X] 语音对讲
- [X] 支持业务分组和行政区划树自定义展示以及级联推送
- [X] 支持订阅与通知方法
- [X] 移动位置订阅
- [X] 移动位置通知处理
- [X] 报警事件订阅
- [X] 报警事件通知处理
- [X] 设备目录订阅
- [X] 设备目录通知处理
- [X] 移动位置查询和显示
- [X] 支持手动添加设备和给设备设置单独的密码
- [X] 支持平台对接接入
- [X] 支持国标级联
- [X] 国标通道向上级联
- [X] WEB添加上级平台
- [X] 注册
- [X] 心跳保活
- [X] 通道选择
- [X] 支持通道编号自定义, 支持每个平台使用不同的通道编号
- [X] 通道推送
- [X] 点播
- [X] 云台控制
- [X] 平台状态查询
- [X] 平台信息查询
- [X] 平台远程启动
- [X] 每个级联平台可自定义的虚拟目录
- [X] 目录订阅与通知
- [X] 录像查看与播放
- [X] GPS订阅与通知(直播推流)
- [X] 语音对讲
- [X] 支持同时级联到多个上级平台
- [X] 支持自动配置ZLM媒体服务, 减少因配置问题所出现的问题;
- [X] 支持流媒体节点集群,负载均衡。
- [X] 支持启用udp多端口模式, 提高udp模式下媒体传输性能;
- [X] 支持公网部署;
- [X] 支持wvp与zlm分开部署,提升平台并发能力
- [X] 支持拉流RTSP/RTMP,分发为各种流格式,或者推送到其他国标平台
- [X] 支持推流RTSP/RTMP,分发为各种流格式,或者推送到其他国标平台
- [X] 支持推流鉴权
- [X] 支持接口鉴权
- [X] 云端录像,推流/代理/国标视频均可以录制在云端服务器,支持预览和下载
- [X] 支持打包可执行jar和war
- [X] 支持跨域请求,支持前后端分离部署
- [X] 支持Mysql,Postgresql,金仓等数据库
- [X] 支持录制计划, 根据设定的时间对通道进行录制. 暂不支持将录制的内容转发到国标上级
- [X] 支持国标信令集群
- [X] 新增支持部标808和部标1078,大量新特性不一一列表了。支持作为网关被国标上级调用部标设备
- [X] 支持电子地图。支持展示通道位置,支持在地图上修改通道位置。支持了数据分层抽稀数据能力,百万级数据也可以轻松展示。提供标准的矢量瓦片图层,常见地图引擎都可以直接展示。
- [X] 借用zlm闭源版本新能力,可以支持录像保存至s3存储,支持minio。
闭源内容
- [X] 国标增强版: 支持国标28181-2022协议,支持巡航轨迹查询,PTZ精准控制,存储卡格式化,设备软件升级,OSD配置,h265+aac,支持辅码流,录像倒放等。
- [X] 全功能版:
- [X] 支持开源所有功能
- [X] ONVIF协议
- 设备检索
- 实时图像预览
- 录像回放、回放倍速控制
- 云台控制、预置位控制、云台绝对定位、看守位
- 聚焦控制
- 设备重启
- 设备时间设置以及跟系统时间的差值比较
- 恢复出厂设置
- 自动获取设备品牌等信息、支持展示DNS信息、支持协议的展示
- 国标级联点播、自动点播等。
- [X] 国网B接口协议
- 设备注册
- 资源获取
- 预览
- 云台控制
- 预置位控制等,
- 可免费定制支持语音对讲、录像回放和抓拍图像。
- [X] 支持按权限分配可以使用的通道
- [X] 支持表格导出
- [X] 拉流代理支持按照品牌拼接url。
- [X] 播放鉴权,更加安全。
授权协议
本项目自有代码使用宽松的MIT协议,在保留版权信息的情况下可以自由应用于各自商用、非商业的项目。 但是本项目也零碎的使用了一些其他的开源代码,在商用的情况下请自行替代或剔除; 由于使用本项目而产生的商业纠纷或侵权行为一概与本项目及开发者无关,请自行承担法律风险。 在使用本项目代码时,也应该在授权协议中同时表明本项目依赖的第三方库的协议
技术支持
付费社群

加入三天内不满意可以直接自行推出,星球会直接退款给大家。需要发票可以在星球app中直接咨询星球客服获取。
星球还提供了包括闭源的全功能试用包, 会随时更新。
付费社群即可以对作者提供支持,也可以为大家更加快速的解决问题。如果暂时无法加入,给项目点个星也是极大的鼓励。
知识星球专栏列表:,
- 使用入门系列一:WVP-PRO能做什么
有偿技术支持,一对一开发辅导,闭源内容合作请发送邮件到648540858@qq.com咨询
致谢
感谢作者夏楚 提供这么棒的开源流媒体服务框架,并在开发过程中给予支持与帮助。
感谢作者dexter langhuihui和Numberwolf-Yanlong 开源这么好用的WEB播放器。
感谢各位大佬的赞助以及对项目的指正与帮助。包括但不限于代码贡献、问题反馈、资金捐赠等各种方式的支持!以下排名不分先后:
lawrencehj Smallwhitepig swwhaha
hotcoffie xiaomu TristingChen
chenparty Hotleave ydwxb
ydpd szy833 ydwxb Albertzhu666
mk1990 SaltFish001
Extension points exported contracts — how you extend this code
ChannelOnlineEvent (Interface)
@author lin [9 implementers]
src/main/java/com/genersoft/iot/vmp/media/zlm/dto/ChannelOnlineEvent.java
Config (Interface)
(no doc)
web/public/static/js/jessibuca/jessibuca.d.ts
ISIPRequestProcessor (Interface)
@description: 对SIP事件进行处理,包括request, response, timeout, ioException, transactionTerminated,dialogTerminated @author: panl [24 …
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/ISIPRequestProcessor.java
Web265JsExtraConfig (Interface)
(no doc)
web/public/static/js/h265web/index.d.ts
ISIPResponseProcessor (Interface)
@description:处理接收IPCamera发来的SIP协议响应消息 @author: swwheihei @date: 2020年5月3日 下午4:42:22 [16 implementers]
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/ISIPResponseProcessor.java
Web265JsConfig (Interface)
(no doc)
web/public/static/js/h265web/index.d.ts
ISourcePlayService (Interface)
资源能力接入-实时录像 [14 implementers]
src/main/java/com/genersoft/iot/vmp/gb28181/service/ISourcePlayService.java
Web265JsMediaInfo (Interface)
(no doc)
web/public/static/js/h265web/index.d.ts
Core symbols most depended-on inside this repo
append
called by 1035
src/main/java/com/genersoft/iot/vmp/conf/webLog/WebSocketAppender.java
info
called by 867
src/main/java/com/genersoft/iot/vmp/service/redisMsg/control/RedisRpcDeviceController.java
push
called by 705
src/main/java/com/genersoft/iot/vmp/conf/webLog/LogChannel.java
put
called by 598
src/main/java/com/genersoft/iot/vmp/utils/UJson.java
get
called by 592
src/main/java/com/genersoft/iot/vmp/service/IRecordPlanService.java
error
called by 556
web/public/static/js/jessibuca/jessibuca.js
getDeviceId
called by 503
src/main/java/com/genersoft/iot/vmp/gb28181/controller/bean/ChannelReduce.java
call
called by 484
src/main/java/com/genersoft/iot/vmp/service/bean/PlayBackCallback.java
Shape
Method
4,930
Function
1,574
Class
729
Interface
95
Enum
29
Languages
Java73%
TypeScript27%
Modules by API surface
web/public/static/js/jessibuca/jessibuca.js399 symbols
web/public/static/js/h265web/h265webjs-v20221106.js302 symbols
web/public/static/js/h265web/missile.js244 symbols
web/public/static/js/ZLMRTCClient.js208 symbols
web/public/static/js/jessibuca/decoder.js117 symbols
doc/lib/js/docsify@4.js79 symbols
src/main/java/com/genersoft/iot/vmp/gb28181/dao/CommonGBChannelMapper.java77 symbols
src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java65 symbols
src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java64 symbols
src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java60 symbols
web/src/store/modules/commonChanel.js59 symbols
web/src/api/commonChannel.js59 symbols
Dependencies from manifests, versioned
cn.hutool:hutool-all5.8.38 · 1×
com.alibaba.fastjson2:fastjson22.0.57 · 1×
com.alibaba.fastjson2:fastjson2-extension2.0.57 · 1×
com.alibaba.fastjson2:fastjson2-extension-spring52.0.57 · 1×
com.alibaba:easyexcel4.0.3 · 1×
com.github.oshi:oshi-core6.6.5 · 1×
com.github.pagehelper:pagehelper-spring-boot-starter2.1.1 · 1×
com.github.xiaoymin:knife4j-openapi3-jakarta-spring-boot-starter4.5.0 · 1×
com.h2database:h22.3.232 · 1×
com.kingbase:kingbase88.6.0 · 1×
com.mysql:mysql-connector-j8.2.0 · 1×
Datastores touched
(mysql)Database · 1 repos
wvpDatabase · 1 repos
wvp2Database · 1 repos
242wvpDatabase · 1 repos
wvpDatabase · 1 repos