# CrestedIbis **Repository Path**: focus1024-wind/CrestedIbis ## Basic Information - **Project Name**: CrestedIbis - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-10-18 - **Last Updated**: 2025-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CrestedIbis CrestedIbis目前是一个基于GB28181标准实现的音视频云平台,负责实现GB28181信令和设备管理,未来将会是一个支持物联网设备接入,算法训练和部署的综合物联网平台。 ![GitHub forks](https://img.shields.io/github/forks/focus1024-wind/CrestedIbis) ![GitHub Repo stars](https://img.shields.io/github/stars/focus1024-wind/CrestedIbis) ![GitHub Issues or Pull Requests](https://img.shields.io/github/issues/focus1024-wind/CrestedIbis) ![GitHub License](https://img.shields.io/github/license/focus1024-wind/CrestedIbis) ![GitHub contributors](https://img.shields.io/github/contributors-anon/focus1024-wind/CrestedIbis) ![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/focus1024-wind/CrestedIbis)

CrestedIbis

GB28181音视频平台!
探索本项目的文档 »

查看Demo · 报告Bug · 提出新特性

## 目录 - [上手指南](#上手指南) - [开发前的配置要求](#开发前的配置要求) - [安装步骤](#安装部署) - [文件目录说明](#文件目录说明) - [使用到的框架](#使用到的框架) - [gb28181功能列表](#gb28181功能列表) - [贡献者](#贡献者) - [license](#license) ### 上手指南 #### 开发前的配置要求 1. golang 1.23.0( 作者当前开发环境,对于其他golang版本不做兼容性测试,若有不支持版本,请提[ISSUES](https://github.com/focus1024-wind/CrestedIbis/issues)) 2. 数据库(根据你的喜好选择你的数据库类型): - MySQL - PostgreSQL #### 安装部署 1. 克隆本仓库 ```shell git clone https://github.com/focus1024-wind/CrestedIbis.git ``` 2. 准备数据库环境,如果你有Docker环境,请参考如下步骤。如果没有,请搜索相关文档,自己安装数据库,本文档不做介绍 ```shell cd dev docker compose up -d ``` 3. 下载依赖 ```shell go mod download ``` 4. Swagger文档生成: ```shell # 下载swag工具 go install github.com/swaggo/swag/cmd/swag@latest ``` ```shell # CrestedIbis数据库模型中依赖于gorm.DeletedAt,所以在生成API文档时,应使用如下命令 swag init --parseDependency --parseInternal ``` 5. 启动服务 ```shell # 读取当前路径下config.yaml文件,运行 go run main.go # 读取指定config文件 go run main.go -c ${config_file} ``` 6. 准备数据库数据,执行resources数据库脚本(本项目依赖[gorm](https://github.com/go-gorm/gorm),启动时,会自动创建数据库表) > [本项目依赖Casbin](https://github.com/casbin/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 # 主程序 ``` ### 使用到的框架 - [Monibuca音视频处理](https://github.com/Monibuca) - [gin Web框架](https://github.com/gin-gonic/gin) - [Swagger API文档生成](https://github.com/swaggo/gin-swagger) - [cobra CLI应用程序框架](https://github.com/spf13/cobra) - [logrusr日志框架](https://github.com/sirupsen/logrus) - [casbin权限管理框架](https://github.com/casbin/casbin) - [gorm orm数据库处理](https://github.com/go-gorm/gorm) ### GB28181功能列表 - GB28181-2022: - [ ] 9.1 注册和注销 - [x] 9.1.2.1 基本注册 - [x] 9.1.2.2 基本注销 - [ ] 9.1.2.3 注册重定向 - [ ] 9.2 实时音视频点播 - [x] 9.2.2.1 客户端主动发起 - [ ] 9.2.2.2 第三方呼叫控制 - [ ] 9.3 控制 - [ ] 9.3.2.1 无应答命令流程 - [ ] 9.3.2.2 有应答命令流程 - [x] 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 第三方呼叫控制 - [x] 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 设备软件升级 - [x] 9.14 图像抓拍 ## 贡献者 contributors ## License - Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)).