# open_ipc **Repository Path**: jf_linux/open_ipc ## Basic Information - **Project Name**: open_ipc - **Description**: IPC开源方案、网络摄像头方案 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 29 - **Created**: 2025-03-19 - **Last Updated**: 2025-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # open_ipc ## 1. 项目简介 open_ipc是一个功能丰富的网络摄像头开源方案,主要特点: - 支持基于云端多模态大模型的AI语音对话和视频识别 - 提供完整基础功能:存储卡录像、RTSP流媒体、RESTful API、Web界面 - 支持两个开发平台: - 海思3516cv610平台(产品型号:PA) - QEMU的aarch64平台(产品型号:PB) ## 2. 项目文档 - [产品需求文档 (PRD)](docs/zh/PRD.md) - 详细的产品功能与需求规格 - [技术栈文档](docs/zh/TechStack.md) - 完整的技术架构与开发规范 - [用户操作指南](docs/zh/UserGuide.md) - 设备使用与操作详解 ## 3. 技术架构 整体遵从分层设计,从底层到顶层依次为: ``` +---------------------+ | 应用层 | <- Web界面、RESTful API、ONVIF、GB28181 +---------------------+ | 基础业务层 | <- 音视频存储、设备升级 +---------------------+ | 基础软件层 | <- 开源三方库、配置管理、事件管理 +---------------------+ | 硬件抽象层 | <- 音频、视频、USB等硬件接口 +---------------------+ | 内核层 | <- Linux内核、设备驱动 +---------------------+ | 硬件层 | <- 3516cv610/aarch64平台 +---------------------+ ``` 在代码实现上,将不同功能抽象为组件,通过拼装和配置组件的方式定制适用于不同设备。 ![](./docs/zh/figures/架构.png) ### 3.1 系统BSP uboot和kernel依赖芯片的SDK,采用buildroot构建根文件系统。 ### 3.2 基础软件层 - **开源三方库**:OpenSSL、cURL、FreeType、eXosip - **基础公共层**:配置管理、事件管理 ### 3.3 硬件抽象层 统一封装硬件操作接口,包括音频、视频、USB等。 ### 3.4 基础业务层 - **核心业务**:音视频存储,设备升级 - **相关文档**: - [产品命名规范](docs/zh/design/product-naming.md) - [升级设计](docs/zh/design/upgrade-design.md) ### 3.5 应用层 - **应用功能**:RESTful API、Web界面、ONVIF、GB28181、APP对接 - **相关文档**: - [前端设计](docs/zh/design/web_design.md) - [RESTful API设计](docs/zh/design/restful_api.md) ## 4. 编译说明 ### 4.1 环境要求 - Linux开发环境: Ubuntu 24 - npm(用于Web前端构建) - 交叉编译工具链: - **子模块初始化**:`git submodule init; git submodule update --remote` - **海思3516cv610平台**:需预先安装SDK的交叉编译工具链 `arm-v01c02-linux-musleabi-gcc` - **aarch64平台**:使用toolchains/aarch64 ### 4.2 编译步骤 ```bash # 编译命令格式 ./build.sh [product] [command] [mode] # 参数说明 # product: 产品型号 - pa: 3516cv610平台 - pb: aarch64平台 # 常用命令示例 # 编译3516cv610平台release版本 ./build.sh pa build release # 编译aarch64平台debug版本 ./build.sh pb build debug # 3516cv610镜像打包 ./build.sh pa all ``` 编译完成后,输出文件位于`out`目录下。 ## 5. 使用指南 ### 5.1 登录访问 - 通过HTTPS访问设备,格式:`https://设备IP地址` - 默认登录凭据: - 用户名:`admin` - 密码:`admin123` ![登录界面](./docs/zh/figures/login.png) ### 5.2 界面功能 #### 5.2.1 实时预览页面 ![播放界面](./docs/zh/figures/live.png) - 基于WebRTC实现低延迟视频流播放 - 支持截图、录制、图像参数调整等功能 #### 5.2.2 配置页面 ![配置界面](./docs/zh/figures/config.png) - 视频参数配置:分辨率、码率、编码格式等 - 网络设置:有线/无线网络配置、RTSP服务等 - 系统设置:用户管理、固件升级、设备重启等 ## 6. 开发路线图 ### 6.1 已完成功能 - [x] RTSP服务支持 - [x] 本地录像存储 - [x] Web界面实时预览(WebRTC) - [x] 阿里云同义千问VL集成,支持图片分析 - [x] 镜像文件打包与Web升级 - [x] 用户管理与网络配置 ### 6.2 近期目标(高优先级) - [ ] 语音功能支持 - [ ] 海思3403平台支持 - [ ] YOLOv8模型集成 ### 6.3 中长期计划(低优先级) - [ ] 看门狗与RTC时钟支持 - [ ] Divinus库支持,适配海思芯片 - [ ] ONVIF协议服务 - [ ] GB28181协议服务 - [ ] 云端APP对接方案 ## 7. 联系方式 - 邮箱:endless@endless-sky.onaliyun.com