# monitor **Repository Path**: dcom1024/monitor ## Basic Information - **Project Name**: monitor - **Description**: 摄像头项目,实现国标GB28181协议。支持 TCP 与 UDP 传输协议,以及 H264 与 H265 编码格式。实现录像回放和实时播放功能,等一些基础功能。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-21 - **Last Updated**: 2025-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 技术及业务逻辑 目前是 Java8 + Redis + SIP + RTP,以及第三方工具 FFmpeg 和 SRS 配合使用。大概步骤如下: * 设备发送注册消息到 SIP 服务器,SIP 服务器返回 200 OK 。后续会持续性的发送心跳包,这样就建立好了与设备的连接 * 由用户调用服务器的点播接口,SIP 服务向设备发送实时流媒体请求。并且开启一个 RTP 端口,让设备往该 RTP 端口发送流媒体数据 * RTP 监听到数据包后解析并拆成多份 NALU 数据,再将该数据循环发给 FFmpeg 进行编码 * 编码数据推流给 SRS 服务器,SRS 服务器对流进行录像保存文件 * 客户端拉取 SRS 服务器流,播放视频 这是大概的点播流程,具体可以参考项目代码(全是注释)。 ### SRS 配置文件 本项目使用的是 SRS 的 Release v5.0-r3 版本,配置文件如下([官网地址](https://ossrs.net/lts/zh-cn/docs/v5/doc/introduction)): ``` listen 1935; max_connections 1000; daemon off; srs_log_tank console; http_api { enabled on; listen 1985; crossdomain on; raw_api { enabled on; } } http_server { enabled on; listen 8080; } vhost __defaultVhost__ { dvr { enabled on; dvr_apply all; dvr_path F:/SRS/dvr/[app]/[stream].[timestamp].flv; dvr_plan segment; dvr_duration 60; dvr_wait_keyframe on; } http_hooks { enabled on; on_play http://127.0.0.1:7099/srs/play; on_stop http://127.0.0.1:7099/srs/stop; on_dvr http://127.0.0.1:7099/srs/dvr; } } ```