使用GB28181播放公网摄像头(JAVA版本)-1

音视频监控系统搭建实践
本文探讨了在项目中大规模部署HIK和UNV品牌IPC摄像头及NVR的方案,对比了厂商提供的萤石云、8700及VMS平台等方案,详细介绍了基于GB28181协议的自建信令服务、收流转码服务和流媒体服务器的方案,包括关键技术挑战和解决思路。

需求描述

目前项目中,公网有大量的IPC摄像头以及NVR,品牌基本上是HIK和UNV,对于这类设备,需求如下

  1. 需要获取设备的状态,播放视频、未来可能还有保存视频的需求。
  2. 业务系统播放视频,无需OCX插件,支持移动端播放。

厂商的方案

对于需求,厂商有一些方案,举例如下:

  1. 海康有萤石云,使用了下,感觉做的不错,就是免费只能2个通道,收费方案包括接入设备数量以及流量的要求的付费。试用了下感觉不错,除了收费其他都挺好。

  2. 服务端设备的方案,如海康有8700,UNV也有类似的VMS平台,原理大概是让摄像头请求平台,然后摄像头在公网打洞,告诉平台自己打洞的地址端口,平台去拉流的方案。

  3. 直连摄像头,rtsp拉流,这种方案比较适合局域网内。

这里要说一句,我觉得为啥这几个大的厂商,不能再摄像头内部集成rtmp推流的方案吗?是涉及到协议有版权还是啥,不然也没这么多麻烦事情了

民间方案

民间有一些收费的方案,如LIVEGBS之类的,价格大概100路1W块钱,绑定硬件设备,使用的应该是GB28181的国标方案,研究了下协议,觉得方案是可行的。确定了方向。

我的方案

确定了方向后,参考了网上大量的资料,最后决定按下图进行

### 部署 WVP-GB28181 和 ZLMediaKit 的基本流程 在 Windows 系统上部署 WVP-GB28181 与 ZLMediaKit 并实现公网访问,需要完成以下几个关键步骤: #### 一、准备环境 首先确保系统中安装了以下组件: - **JDK**:WVP-GB28181 后端使用 Spring Boot 开发,需要 JDK 支持。 - **Node.js**:前端部分基于 Vue 框架,构建时需要 Node.js 环境。 - **MySQL 或 PostgreSQL**:用于存储设备信息和平台数据。 - **Redis**:用于缓存实时连接状态等信息。 - **FFmpeg**:ZLMediaKit 可以结合 FFmpeg 进行转码和流处理。 #### 二、部署 WVP-GB28181 1. 下载 WVP-GB28181 项目源码并导入数据库文件。 ```bash git clone https://github.com/648540858/wvp-GB28181-pro.git ``` 2. 修改配置文件 `application.yml` 中的数据库连接参数、Redis 地址、ZLMediaKit 地址等[^1]。 3. 使用 Maven 编译打包: ```bash cd wvp-GB28181-pro mvn clean package ``` 4. 启动后端服务: ```bash java -jar target/wvp-GB28181-pro.jar ``` #### 三、部署 ZLMediaKit 1. 下载 ZLMediaKit 源码并编译(Windows 上建议使用 MinGW 或 Visual Studio): ```bash git clone https://github.com/ZLMediaKit/ZLMediaKit.git cd ZLMediaKit mkdir build && cd build cmake .. make ``` 2. 修改配置文件 `config.ini`,设置媒体服务器监听地址为公网 IP 或 0.0.0.0,并开启 RTSP、RTP、WebRTC 等协议支持[^1]。 3. 启动 ZLMediaKit: ```bash ./MediaServer ``` #### 四、配置公网访问 为了实现从公网访问 WVP-GB28181 和 ZLMediaKit 提供的服务,可以采用以下几种方式: - **Nginx 反向代理**:将 WVP 前后端和 ZLMediaKit 的 Web API 映射到公网域名或 IP。 ```nginx server { listen 80; server_name yourdomain.com; location /api/ { proxy_pass http://localhost:8080/; } location /ws/ { proxy_pass http://localhost:8080/ws/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /media/ { proxy_pass http://localhost:8081/; } } ``` - **端口映射/NAT**:在路由器或云服务器上开放如下端口: - HTTP API (默认 8080) - WebSocket (默认 8080) - RTSP (默认 554) - RTP/RTCP (通常使用 10000~65535 范围内的 UDP 端口)[^2] - **动态 DNS(可选)**:如果公网 IP 是动态分配的,可以使用 DDNS 服务绑定固定域名。 #### 五、摄像头接入配置 1. 登录 WVP-GB28181 前端管理界面,默认账号密码为 admin/admin。 2. 添加设备时选择 GB28181 协议,填写设备 ID、IP 地址、SIP 服务器地址(即 WVP 的 SIP 接收地址)。 3. 设备注册成功后,可以在平台上查看实时视频流并通过 ZLMediaKit 实现录像、转发等功能。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值