# endless **Repository Path**: endless22/endless ## Basic Information - **Project Name**: endless - **Description**: IPC开源方案、网络摄像头方案。 - **Primary Language**: C++ - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: http://www.endless-sky-tech.com/ - **GVP Project**: No ## Statistics - **Stars**: 55 - **Forks**: 34 - **Created**: 2022-04-09 - **Last Updated**: 2026-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: IPC, 网络摄像头 ## README
真实设备 Web 直播页面;播放器内容为隐私保护合成画面。
- 通过 WHEP/WebRTC 在浏览器中低延迟播放设备码流; - 支持主、子码流快速切换,并以 `HD` / `SD` 标识当前清晰度; - 支持浏览器抓图、页面全屏和实时码率显示; - 可订阅设备智能事件,在视频层自动叠加目标类别、置信度和检测框。 ### 录像回放 真实设备 Web 录像回放页面;播放器内容为隐私保护合成画面。
- 按日期检索录像,以 24 小时时间轴定位片段,并可切换 24 小时、6 小时和 1 小时视图; - 区分连续录像、移动侦测、事件录像和手动录像,不同类型在时间轴中分别着色; - 支持片段列表、前后片段切换、播放/暂停、快退/快进、倍速、音量和全屏控制; - 通过独立 WHEP 回放会话播放设备端录像,不占用直播会话。 ### 算法配置 真实设备 Web 模型管理页面;蓝色标注突出自定义算法上传与内置算法启用入口。
- **上传自定义算法:** 选择来源可信的 `.emodel` 模型包上传,设备会校验包结构、文件摘要、运行时契约和可选签名;校验安装完成后不会自动启用,可先查看详情再决定是否启动; - **启动内置算法:** 固件内置算法无需重复上传,在模型目录中确认输入规格、目标数量和当前状态后,点击“启用”即可启动; - 内置算法与已安装的自定义算法统一展示版本、来源、信任状态、输入尺寸、目标类别和运行状态,并共用启用、停用与切换入口; - 切换算法时会先停止当前目标检测模型,启动失败时尝试回滚;自定义算法还支持独立删除,已选择或正在运行的模型不会被误删。 ### 人脸智能 真实设备 Web 人脸智能页面;画面、识别结果和统计数字均为隐私保护合成演示内容。
- 将人脸检测与跟踪、最佳抓拍、特征比对和事件推送组织成完整处理链路; - 实时页汇总今日抓拍、识别和陌生人数量,并滚动展示最近识别结果; - 人脸库支持分组管理、人员录入与维护,抓拍记录支持条件查询、详情对比和按图检索; - 参数设置覆盖检测跟踪、抓拍质量与模式、人脸尺寸、姿态和比对阈值。 ### 车牌识别 真实设备 Web 车牌识别页面;车辆画面、车牌结果和统计数字均为隐私保护合成演示内容。
- 实时页集中展示视频预览、今日抓拍与识别、名单命中统计和最近抓拍结果; - 名单管理支持白名单、黑名单、有效期、车主与备注等业务信息; - 抓拍记录支持关键词、名单结果和时间范围查询,并可查看场景图与车牌图详情; - 参数设置支持识别阈值、同牌去重、抓拍区域、屏蔽区域、存储配额和模型信息查看。 ### 事件管理 事件中心将视频检测、目标跟踪、外部报警输入和设备联动统一为固定事件模型。不同事件类型可以独立启用、设置规则,并复用同一套布防和联动能力。 | 事件分类 | 已提供功能 | | --- | --- | | 基础视频检测 | 移动侦测、视频遮挡、虚焦、场景变更 | | 行为分析 | 越线、区域入侵、物品遗留、物品移除、徘徊、快速移动、人群聚集、非法停车 | | 热度图分析 | 检测区域、网格行列精度、上报间隔 | | 人脸分析 | 人脸检测、人脸抓拍,以及算法实际支持的人脸属性 | | 人数统计 | 全画面人数、区域人数、排队检测 | | 视频结构化 | 人体、机动车、非机动车检测 | | 报警输入 | 将板级报警输入转换为事件,并进入统一报警联动流程 | 行为分析支持多个检测项,以及越线、区域和方向等几何规则。
每条规则可以配置: - 总开关、规则开关、名称和视频通道; - 灵敏度、触发/恢复确认帧数、置信度和目标类型过滤; - 全画面、检测区域、规则线及越线方向; - 持续时间、上报间隔、人数阈值、热度图网格和人脸属性等事件专用参数; - 行为分析支持为同一种事件添加多个检测项,分别设置区域、方向与联动策略。 布防时间与联动动作直接绑定在事件规则上。
报警联动支持: - 全天生效或按星期、时间段布防,并设置去抖时间; - 联动录像与抓图,选择录像通道并设置延迟结束时间; - 驱动报警输出并设置保持时间; - 播放指定语音文件,配置音量与播放时长; - 闪烁白光灯,配置亮灭周期与联动持续时间。 界面会随版本持续演进,请以当前构建结果为准。 ## 技术架构  架构遵循“产品配置 → 应用编排 → 业务组件 → 基础服务 → HAL → 板级平台”的依赖方向。主进程在 [`applications/endless/main.cpp`](applications/endless/main.cpp) 中按依赖顺序启动和停止模块,各组件通过公共接口、配置管理、事件中心和工具注册中心协作。 ### 目录说明 | 目录 | 职责 | 二开建议 | | --- | --- | --- | | [`applications`](applications) | 主服务和升级守护进程入口 | 保持入口轻量,只负责生命周期编排 | | [`base`](base) | 媒体、录像、存储、网络、事件、升级等基础服务 | 放置可被多种协议或产品复用的能力 | | [`foundation`](foundation) | 流媒体、JSON-RPC、Web、ONVIF、GB28181、Agent/MCP 等业务组件 | 放置接入层、协议层和云服务适配 | | [`common`](common) | 日志、任务、内存、IPC、配置等通用工具 | 避免引入具体产品或业务语义 | | [`hal`](hal) | MPP、AI 和外设抽象接口 | 新平台实现应遵守这里的接口契约 | | [`device/board`](device/board) | 板级 RootFS、内核、启动文件、分区布局与打包 hook | 管理 SoC/板卡共性,不混入客户产品配置 | | [`vendor`](vendor) | 产品型号、传感器、功能裁剪与 RootFS overlay | 新增产品优先从这里开始 | | [`scripts/package`](scripts/package) | 通用固件打包引擎 | 扩展新介质、分区策略或升级格式 | | [`lib`](lib) / [`third_party`](third_party) | 平台预编译库与第三方依赖 | 使用和再分发前确认各自许可证或 SDK 条款 | ## 快速开始 构建环境为 Ubuntu 24.04。安装基础依赖: ```bash sudo apt update sudo apt install -y build-essential cmake git jq curl \ nodejs npm cpio u-boot-tools mtd-utils squashfs-tools ``` 获取源码并编译 `ipc200` Release 版本: ```bash git clone https://gitee.com/endless22/endless.git cd endless ./build.sh ipc200 build release ``` 3516CV610 交叉工具链会在首次构建时自动下载,默认缓存到 `~/.cache/endless/toolchains`。编译结果位于 `out/ipc200/bin/`。 如需构建 Web 前端或固件包: ```bash ./build.sh ipc200 all release ./build.sh ipc200 package release ``` 设备烧录并启动后,通过 `http://<设备 IP>/` 访问 Web。首次初始化的默认账号为 `admin`,默认密码为 `admin123`,首次登录后请立即修改密码。 完整命令说明可通过 `./build.sh --help` 查看。 ## 联系方式 - 邮箱:`endless@endless-sky-tech.com` - 微信公众号:扫描下方二维码关注。