CrestedIbis目前是一个基于GB28181标准实现的音视频云平台,负责实现GB28181信令和设备管理,未来将会是一个支持物联网设备接入,算法训练和部署的综合物联网平台。
GB28181音视频平台!
探索本项目的文档 »
查看Demo
·
报告Bug
·
提出新特性
- golang 1.23.0( 作者当前开发环境,对于其他golang版本不做兼容性测试,若有不支持版本,请提ISSUES)
- 数据库(根据你的喜好选择你的数据库类型):
- MySQL
- PostgreSQL
- 克隆本仓库
git clone https://github.com/focus1024-wind/CrestedIbis.git
- 准备数据库环境,如果你有Docker环境,请参考如下步骤。如果没有,请搜索相关文档,自己安装数据库,本文档不做介绍
cd dev docker compose up -d
- 下载依赖
go mod download
- Swagger文档生成:
# 下载swag工具 go install github.com/swaggo/swag/cmd/swag@latest
# CrestedIbis数据库模型中依赖于gorm.DeletedAt,所以在生成API文档时,应使用如下命令 swag init --parseDependency --parseInternal
- 启动服务
# 读取当前路径下config.yaml文件,运行 go run main.go # 读取指定config文件 go run main.go -c ${config_file}
- 准备数据库数据,执行resources数据库脚本(本项目依赖gorm,启动时,会自动创建数据库表)
本项目依赖Casbin进行权限管理,所以在首次初始化数据库表后,需要执行数据库脚本,否则相关接口将无权限访问。
filetree
├─dev # 开发环境,Docker开发compose脚本
├─docs # Swagger API文档,`swag init --parseDependency --parseInternal`自动生成,无需手动编辑
├─gb28181_server # 基于Monibuca实现的GB28181插件
├─resources # 资源文档,存放数据库脚本
├─src # web服务实现
│ ├─apps # app接口
│ │ └─ipc
│ ├─config # 读取配置文件数据
│ │ └─model
│ ├─global # 全局配置变量,模型
│ │ ├─initizalize # 初始化脚本
│ │ └─model # 全局模型
│ └─utils # 工具类
├─store # 默认资源存储路径(图片抓拍,视频录制)
├─config.yaml # 默认配置文件
└─main.go # 主程序
- GB28181-2022:
- 9.1 注册和注销
- 9.1.2.1 基本注册
- 9.1.2.2 基本注销
- 9.1.2.3 注册重定向
- 9.2 实时音视频点播
- 9.2.2.1 客户端主动发起
- 9.2.2.2 第三方呼叫控制
- 9.3 控制
- 9.3.2.1 无应答命令流程
- 9.3.2.2 有应答命令流程
- 9.4 报警事件通知和分发
- 9.5 网络设备信息查询
- 9.6 状态信息报送
- 9.7 设备视音频文件检索
- 9.8 历史视音频回放
- 9.8.2.1 客户端主动发起
- 9.8.2.2 第三方呼叫控制
- 9.9 视音频文件下载
- 9.9.2.1 客户端主动发起
- 9.9.2.2 第三方呼叫控制
- 9.10 校时
- 9.11 订阅和通知
- 9.11.1.2 事件订阅
- 9.11.2.2 事件通知
- 9.11.3.2 目录订阅
- 9.11.4.2 目录通知
- 9.12 语音广播和语音对讲
- 9.12.1.2 语音广播
- 9.12.2.2 语音对讲
- 9.13 设备软件升级
- 9.14 图像抓拍
- 9.1 注册和注销
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0).