# 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
# Endless **面向智能网络摄像机的完整软硬件可定制方案** 从硬件平台、传感器和板级设计,到音视频、流媒体、Web 管理、行业协议、智能分析和 AI Agent,提供一套可编译、可烧录、可量产的完整 IPC 软硬件方案。 [![C++17](https://img.shields.io/badge/C%2B%2B-17-00599C?logo=c%2B%2B)](cmake/common.cmake) [![Vue 3](https://img.shields.io/badge/Vue-3-42b883?logo=vuedotjs)](foundation/web_page) [![Platform](https://img.shields.io/badge/SoC-Hi3516CV610-0ea5e9)](device/board/3516cv610) [![License](https://img.shields.io/badge/License-AGPL--3.0--or--later-1f6feb)](LICENSE)
## 项目定位 Endless 是一套面向 Linux 智能摄像机的完整软硬件可定制方案,而不只是一个软件框架。它将硬件平台、传感器、板级设计与量产 IPC 常见的媒体、录像、网络、升级、权限、协议和智能能力整合为统一方案,并通过产品配置完成型号差异化。 它适合以下场景: - IPC 厂商快速搭建自有固件、Web 管理端和升级体系; - 方案商接入 ONVIF、GB28181、RTSP、WHEP/WebRTC 或上层业务平台; - 开发者新增算法、事件联动、云模型、Agent 工具或设备控制能力; - 二次开发团队基于统一 HAL 和模块接口适配传感器、板卡与新产品型号。 > 当前开源构建流程仅支持 **HiSilicon 3516CV610**。仓库内提供 `ipc200` 产品配置;移植其他 SoC 需要同时适配工具链、HAL、板级文件和打包流程。 > 闭源版本支持瑞芯微1126pb,爱芯元智ax615,海思3519dv500,海思3516CV608 ### 已有产品配置 | 产品 ID | 硬件组合 | 定位 | 主要差异 | | --- | --- | --- | --- | | `ipc200` | 3516CV610 + SC4336P | 4MP 标准款 | 标准主/子码流与通用外设配置 | 实际分辨率、帧率、编码、GPIO、IR-CUT 和补光灯能力以对应产品的 `board.yaml` 与 `product.yaml` 为准。 ## 核心能力 | 能力域 | 已提供能力 | 主要代码入口 | | --- | --- | --- | | 音视频 | H.264/H.265、主/子码流、OSD、抓图、音频输入与语音播放 | `base/media`、`hal/mpp` | | 流媒体 | RTSP、RTMP、WebRTC/WHEP 直播与录像回放、会话与资源配额 | `foundation/stream_service` | | 存储录像 | 存储设备管理、计划录像、录像检索、回放、抓图与文件索引 | `base/storage`、`base/record`、`base/file_manager` | | 智能分析 | 人/车/人脸等内置算法配置、自定义 YOLO 模型、ROI/尺寸过滤和事件联动 | `base/video_analytics`、`hal/ai`、`base/event_manager` | | 开放协议 | JSON-RPC 2.0、设备发现、ONVIF、GB28181、RTSP/WHEP 接入 | `foundation/protocol`、`base/discovery`、`foundation/onvif`、`foundation/gb28181` | | AI 与工具 | Qwen/阿里云模型接入、设备 Agent、工具注册中心与 MCP 服务 | `foundation/agent`、`foundation/qwen`、`foundation/aliyun`、`foundation/tools`、`foundation/mcp` | | 设备管理 | 用户与细粒度权限、网络配置、配置备份、日志、SSH、诊断、看门狗与恢复出厂 | `base/common`、`base/network`、`base/system_service` | | 固件工程 | 产品配置、RootFS overlay、分区布局、烧录包、升级包与独立升级守护进程 | `vendor`、`device/board`、`scripts/package`、`applications/upgraded` | 云模型、MCP 和行业协议通常还需要在设备端填写服务参数、账号或平台信息;是否启用由产品 `defconfig` 与运行时配置共同决定。 ## 功能展示 Web 管理端基于 Vue 3 和 Ant Design Vue,覆盖实时预览、录像回放、人脸智能、车牌识别、摄像头参数、网络协议、事件规则、外设、系统运维、Agent 与 MCP 配置。 > 以下界面采集自一台实际运行设备。为保护现场隐私,采集时在浏览器网络层阻断真实直播、回放、抓拍图片与识别事件;涉及画面的场景,以及人脸和车牌页面中的识别结果与统计数字,均为合成演示内容。页面框架、导航、控件与功能布局来自真实设备。 ### 实时直播 ![Endless Web 实时直播](docs/zh/assets/readme/web-live-v4.png)

真实设备 Web 直播页面;播放器内容为隐私保护合成画面。

- 通过 WHEP/WebRTC 在浏览器中低延迟播放设备码流; - 支持主、子码流快速切换,并以 `HD` / `SD` 标识当前清晰度; - 支持浏览器抓图、页面全屏和实时码率显示; - 可订阅设备智能事件,在视频层自动叠加目标类别、置信度和检测框。 ### 录像回放 ![Endless Web 录像回放](docs/zh/assets/readme/web-playback-v2.png)

真实设备 Web 录像回放页面;播放器内容为隐私保护合成画面。

- 按日期检索录像,以 24 小时时间轴定位片段,并可切换 24 小时、6 小时和 1 小时视图; - 区分连续录像、移动侦测、事件录像和手动录像,不同类型在时间轴中分别着色; - 支持片段列表、前后片段切换、播放/暂停、快退/快进、倍速、音量和全屏控制; - 通过独立 WHEP 回放会话播放设备端录像,不占用直播会话。 ### 算法配置 ![Endless Web 模型管理](docs/zh/assets/readme/web-model-management.png)

真实设备 Web 模型管理页面;蓝色标注突出自定义算法上传与内置算法启用入口。

- **上传自定义算法:** 选择来源可信的 `.emodel` 模型包上传,设备会校验包结构、文件摘要、运行时契约和可选签名;校验安装完成后不会自动启用,可先查看详情再决定是否启动; - **启动内置算法:** 固件内置算法无需重复上传,在模型目录中确认输入规格、目标数量和当前状态后,点击“启用”即可启动; - 内置算法与已安装的自定义算法统一展示版本、来源、信任状态、输入尺寸、目标类别和运行状态,并共用启用、停用与切换入口; - 切换算法时会先停止当前目标检测模型,启动失败时尝试回滚;自定义算法还支持独立删除,已选择或正在运行的模型不会被误删。 ### 人脸智能 ![Endless Web 人脸智能](docs/zh/assets/readme/web-face-intelligence.png)

真实设备 Web 人脸智能页面;画面、识别结果和统计数字均为隐私保护合成演示内容。

- 将人脸检测与跟踪、最佳抓拍、特征比对和事件推送组织成完整处理链路; - 实时页汇总今日抓拍、识别和陌生人数量,并滚动展示最近识别结果; - 人脸库支持分组管理、人员录入与维护,抓拍记录支持条件查询、详情对比和按图检索; - 参数设置覆盖检测跟踪、抓拍质量与模式、人脸尺寸、姿态和比对阈值。 ### 车牌识别 ![Endless Web 车牌识别](docs/zh/assets/readme/web-anpr-intelligence.png)

真实设备 Web 车牌识别页面;车辆画面、车牌结果和统计数字均为隐私保护合成演示内容。

- 实时页集中展示视频预览、今日抓拍与识别、名单命中统计和最近抓拍结果; - 名单管理支持白名单、黑名单、有效期、车主与备注等业务信息; - 抓拍记录支持关键词、名单结果和时间范围查询,并可查看场景图与车牌图详情; - 参数设置支持识别阈值、同牌去重、抓拍区域、屏蔽区域、存储配额和模型信息查看。 ### 事件管理 事件中心将视频检测、目标跟踪、外部报警输入和设备联动统一为固定事件模型。不同事件类型可以独立启用、设置规则,并复用同一套布防和联动能力。 | 事件分类 | 已提供功能 | | --- | --- | | 基础视频检测 | 移动侦测、视频遮挡、虚焦、场景变更 | | 行为分析 | 越线、区域入侵、物品遗留、物品移除、徘徊、快速移动、人群聚集、非法停车 | | 热度图分析 | 检测区域、网格行列精度、上报间隔 | | 人脸分析 | 人脸检测、人脸抓拍,以及算法实际支持的人脸属性 | | 人数统计 | 全画面人数、区域人数、排队检测 | | 视频结构化 | 人体、机动车、非机动车检测 | | 报警输入 | 将板级报警输入转换为事件,并进入统一报警联动流程 | ![Endless Web 事件规则配置](docs/zh/assets/readme/web-event-rules-v2.png)

行为分析支持多个检测项,以及越线、区域和方向等几何规则。

每条规则可以配置: - 总开关、规则开关、名称和视频通道; - 灵敏度、触发/恢复确认帧数、置信度和目标类型过滤; - 全画面、检测区域、规则线及越线方向; - 持续时间、上报间隔、人数阈值、热度图网格和人脸属性等事件专用参数; - 行为分析支持为同一种事件添加多个检测项,分别设置区域、方向与联动策略。 ![Endless Web 事件报警联动](docs/zh/assets/readme/web-event-linkage-v2.png)

布防时间与联动动作直接绑定在事件规则上。

报警联动支持: - 全天生效或按星期、时间段布防,并设置去抖时间; - 联动录像与抓图,选择录像通道并设置延迟结束时间; - 驱动报警输出并设置保持时间; - 播放指定语音文件,配置音量与播放时长; - 闪烁白光灯,配置亮灭周期与联动持续时间。 界面会随版本持续演进,请以当前构建结果为准。 ## 技术架构 ![Endless 分层技术架构](docs/zh/assets/readme/architecture.svg) 架构遵循“产品配置 → 应用编排 → 业务组件 → 基础服务 → 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` - 微信公众号:扫描下方二维码关注。

微信公众号二维码

## 许可证 本项目自有代码以 [`AGPL-3.0-or-later`](LICENSE) 提供。你可以在遵守 AGPL 条款的前提下修改、部署和商用;通过网络向用户提供修改后的程序时,请特别留意 AGPL 对应源代码提供义务。 如果需要闭源集成、单独商业授权或技术合作,请联系:`endless@endless-sky-tech.com`。 第三方库、芯片 SDK、预编译 HAL/算法库及模型文件可能适用各自的许可证或分发限制,请在发布二次开发产品前逐项核对。