# jetlinks-media 音视频流媒体管理模块,实现`GBT 28181`相关协议功能。 # GBT 28181功能 * [x] 注册和注销 * [x] 实时视音频点播 * [x] 设备控制:云台控制,预置位 * [x] 报警事件 * [x] 设备信息查询 * [x] 状态信息报送 * [x] 历史视音频文件检索 * [x] 历史视音频回放 * [ ] 历史视音频文件下载 * [ ] 网络校时 * [ ] 订阅和通知 * [ ] 语音广播和语音对讲 * [x] 级联控制 # 其他功能 * [x] 直播长时间无人观看,自动停止推流 1. 检出代码 ```bash $ git submodule add --force git@github.com:jetlinks/jetlinks-media.git expands-components/jetlinks-media ``` 2、 在项目(`jetlinks-pro`)根目录下的`pom.xml`中的`modules`节点中添加模块 ```xml expands-components/jetlinks-media ``` 3、 在启动模块(`jetlinks-standalone/pom.xml`)中引入依赖 ```xml org.jetlinks.pro jetlinks-media ${project.version} ``` 4、 重新编译启动服务 5、 进入[`系统-用户管理-赋权`]重新分配权限到管理员用户. 权限ID: `gb28181-gateway`,`media-channel`,`media-device`,`media-server` 6、 重新登录 7、创建产品,选择协议`GB28181/2016` 8、启动ZLMedia,参照`zlm/docker-compose.yml` 9、在国标网关中配置流媒体服务和信令服务 # 核心类 1. `GB28181DeviceGateway`: 用于接受SIP请求,实现28181设备自动注册,获取通道等功能 2. `GB28181Invoker`: 用于发送指令给SIP客户端,并获取对应响应结果。 3. `SsrcPool`: ssrc池,用于管理ssrc的分配和释放。 4. `CascadeGateway`: 级联网关,用于自动注册到上级域,并且处理上级域下发的指令。