- GB28181开源的目标是:通过代码复用,适当降低工作难度和减少业务代码的重复性,并非替代你的开发工作或者让你几乎不用开发工作。
- 最新国标是:【GB28181-2016】
- 项目结构、代码结仍存在不少问题,待完善,因为时间问题,也是希望大家能一起完善
- 希望每一个对本项目感兴趣的朋友,都能成为本项目的共同作者或者贡献者
- 注意:代码一直在更新,GB28181系列项目,并不是生产就绪的,往往须要根据自己的项目和产品架构,做适当的调整和适配!!
running in docker
running on Linux
running on aspnetcore 3.1+
- Mainly on
develop
branch ,in order to support .net core3.1+.- 以develop分支为主.
- The windows function part was not maintained .
- Form Client Project Need to be fixed.
- you can refer to other branch in this repo ,
PRs
are always welcome. - provide grpc interface for other microservice
项目希望达到的目标功能,如下:
打勾的是已完成的,没打勾的是正在做的,需要大家一起完成的。
-
Architecture & framework
- 设计与流媒体服务交互的GRPC接口
- 设计与系统配置服务(或数据服务)交互的GRPC接口
- 精简服务模块,调整代码结构关系
- 为配置接口和流媒体服务接口提供mock数据,使得服务可以独立运行
- 以GRPC方式对接流媒体服务【monibuca】
- 以GRPC方式从系统配置服务(或者数据服务)中获取GB信令服务的配置信息,包括名称、ID、端口、协议等
- 使服务注册组件变成可配置的(或者移除),(当前是consul,并且k8s环境中也不需要)
- 将GRPC服务的实现改为apsnetcore3.1+的内置实现方式.
- 从GB28181.Sipsorcery项目中将原始的sipsorcery项目分离出来
- 剥离删除DNS组件,直接使用sipsorcery项目的原始功能.
-
SIP信令服务
- 对接GB28181设备,实现基本的设备控制(暂不含双向语音和巡航等功能)
- Device Registering And management
- Device Controlling Service such as :PTZ
- Device Catalog Query
- Device Info Query
- Device Live Video
- Device History Video Query
- 对接GB28181平台,实现完整的平台级联控制。
- 注册到服务的设备信息缓存
- 注册到服务的平台信息缓存,待进一步测试
- 对接GB28181设备,实现基本的设备控制(暂不含双向语音和巡航等功能)
-
Streaming Media(流媒体,以【monibuca】为基础)
- 修复视频测试工具(WinTool)
- 完善项目视频组件功能相关的测试流程文档
- 定义SIP信令服务与流媒体服务交互的RTSP接口
- 定义SIP信令服务与流媒体服务交互的GRPC接口
- 实现完整的实时视频播放功能, Video Live Play
- 实现完整的历史视频搜索功能,History Video Record Search
- 实现完整的历史视频播放功能, History Video PlayBack
下图展示 GB28181.Server 在整个系统架构中设定的、与其他服务的模块关系以及交互方式设计:
需要注意:图示中的架构设计,不一定适合你的项目需求和你的系统架构设计要求,往往需要根据你的项目实际做修改和调整
欢迎共同讨论,共同进步,欢迎PR
微信扫描二维码,添加好友,进入微信讨论群(注明:GB28181+公司+姓名):
MIT & BSD v2 & BSD v3 & GPL
说明: 由于项目前期License问题的不严谨性,项目采用了诸多协议,如GPL、MIT、BSD v2 BSD v3等,但是,由于GPL License的存在以及GPL License的约束和传染性,这对希望修改后闭源使用的朋友可能会造成较大影响.
项目中用到的 SIPSorcery中明确使用了GPL License, 比如: DNSResponse
针对该License问题:项目的后续计划是将使用的 SIPSorcery中的相关代码更新为原作者使用Code Project Open License (CPOL)的版本, 比如:使用CPOL版本DNSResponse,同时将其他代码的License也做适当的更宽泛化调整
GPL License 有三个版本:GPL(GPL 1.0)、GPL 2.0、GPL 3.0