go wvp 是 Go 语言实现的开源 GB28181 解决方案,基于 GB28181-2022 标准实现的网络视频平台,同时支持 2016/2011 版本,支持 rtmp/rtsp,客户端支持网页版本和安卓 App。
![]() |
![]() |
---|
- 支持浏览器无插件播放摄像头视频。
- 支持国标设备(摄像机、平台、NVR等)设备接入
- 支持非国标(rtsp, rtmp,直播设备等等)设备接入,充分利旧。
- 支持跨网视频预览。
- 支持 Docker, Docker Compose, Kubernetes 部署
感谢 @panjjo 大佬的开源库 panjjo/gosip,GoWVP 的 sip 信令基于此库,出于底层封装需要,并非直接 go mod 依赖该项目,而是源代码放到了 pkg 包中。
流媒体服务基于@夏楚 ZLMediaKit
播放器使用@dexter jessibuca
项目框架基于 @ixugo goweb
Java 语言 WVP @648540858 wvp-GB28181-pro
怎么没有前端资源? 如何加载网页呢?
前端资源打包后放到项目根目录,重命名为 www
即可正常加载。
有没有代码相关的学习资料?
GB/T28181 开源日记[1]:从 0 到实现 GB28181 协议的完整实践
GB/T28181 开源日记[2]:搭建服务端,解决跨域,接口联调
GB/T28181 开源日记[3]:使用 React 组件构建监控数据面板
GB/T28181 开源日记[4]:使用 ESlint 辅助开发
GB/T28181 开源日记[5]:使用 react-hook-form 完成表单
GB/T28181 开源日记[6]:React 快速接入 jessibuca.js 播放器
GB/T28181 开源日记[7]:实现 RTMP 鉴权与播放
有没有使用资料?
RTMP
GB/T28181
GoWVP 在线接口文档
ZLM使用文档 github.com/ZLMediaKit/ZLMediaKit
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>** gowvp & zlmediakit 融合镜像** docker-compose.yml
services:
gowvp:
image: gospace/gowvp:latest
ports:
- 15123:15123 # 管理平台 http 端口
- 15060:15060 # gb28181 sip tcp 端口
- 15060:15060/udp # gb28181 sip udp 端口
- 1935:1935 # rtmp
- 554:554 # rtsp
- 8080:80 # http
- 8443:443 # https
- 10000:10000
- 8000:8000/udp
- 9000:9000/udp
- 20050-20100:20050-20100 # gb28181 收流端口
- 20050-20100:20050-20100/udp # gb28181 收流端口udp
volumes:
- ./configs:/opt/media/bin/configs
- ./logs:/opt/media/bin/logs
- ./zlm.conf:/opt/media/conf
** gowvp & zlmediakit 分开镜像**
services:
gowvp:
image: registry.cn-shanghai.aliyuncs.com/ixugo/gowvp:latest
ports:
- 15123:15123 # 管理平台 http 端口
- 15060:15060 # gb28181 sip tcp 端口
- 15060:15060/udp # gb28181 sip udp 端口
volumes:
- ./logs:/app/logs
- ./configs:/app/configs
zlm:
image: zlmediakit/zlmediakit:master
restart: always
# 推荐 linux 主机使用 host 模式
# network_mode: host
ports:
- 1935:1935 # rtmp
- 554:554 # rtsp
- 8080:80 # api
- 8443:443
- 10000:10000
- 10000:10000/udp
- 8000:8000/udp
- 9000:9000/udp
- 20050-20100:20050-20100
- 20050-20100:20050-20100/udp
volumes:
- ./conf:/opt/media/conf
即将发布安装包 和 docker 版本。
如果你是 Go 语言开发者并熟悉 docker,可以提前下载源代码,本地编程运行。
前置条件
- Golang
- Docker & Docker Compose
- Make
操作流程
-
- 克隆本项目
-
- 修改 configs/config.toml 中
WebHookIP
为你的局域网 IP
- 修改 configs/config.toml 中
-
- 执行
make build/linux && docker compose up -d
- 执行
-
- 自动创建了 zlm.conf 文件夹,获取 config.ini 的 api 秘钥,填写到
configs/config.toml
的Secret
- 自动创建了 zlm.conf 文件夹,获取 config.ini 的 api 秘钥,填写到
-
- 执行
docker compose restart
- 执行
-
- 浏览器访问
http://localhost:15123
- 浏览器访问
- fork 本项目
- 编辑器 run/debug 设置配置输出目录为项目根目录
- 修改,提交 PR,说明修改内容
- 开箱即用,支持 web
- 支持移动端 app
- 支持 rtmp 流分发
- 支持 rtsp 流分发
- 支持输出 HTTP_FLV,Websocket_FLV,HLS,WebRTC,RTSP、RTMP 等多种协议流地址
- 支持局域网/互联网/多层 NAT/特殊网络环境部署
- 支持 SQLite 数据库快速部署
- 支持 PostgreSQL 数据库,当接入设备数超过 300 时推荐
- GB/T 28181
- 设备注册,支持 7 种接入方式
- 支持 UDP 和 TCP 两种国标信令传输模式
- 设备校时
- 设备目录查询
- 设备信息同步
- 设备实时直播
- 支持 UDP 和 TCP 被动两种国标流传输模式
- 按需拉流,节省流量
- 视频支持播放 H264 和 H265
- 音频支持 g711a/g711u/aac
- 设备云台控制
- 录像回放
- 报警事件订阅
- 报警事件通知处理
本项目自有代码使用宽松的 MIT 协议,在保留版权信息的情况下可以自由应用于各自商用、非商业的项目。