瑞芯微(EASY EAI)RV1126B 网络摄像头方案

旅游文化 2026-04-16 广盈财人 3529

1. 方案简介

本方案将演示如何利用EASY-EAI-Nano-TB以及MIPI-CSI摄像头制作一个【网络摄像头(IPCamera)】:两路MIPI-CSI摄像头分别单独输出两路流。

1.1 接线示意图

摄像头与板卡连接:

v2-7f7d6ea9d6f46c3fd7c83f21f507d862_720w.webp

板卡与局域网连接:

v2-ab6a14cf963ea98159fbe236df058a2e_720w.webp

* 接线必须在断电时进行操作。

* 采用反向线连接IMX415摄像头与Cmaera1接口。(注意:用错线会烧坏摄像头或者核心板,因此在接线时务必要小心。)

* 接线端子卡扣与FPC线的蓝色塑料标识必须位于同一侧。如下图所示。

EASY EAI Nano-TB默认搭配IMX415单目摄像头。同时配有一根0.5mm间距的40pin FPC反向线

反向线:两端的蓝色标识不在同一侧面。

同向线:两端的蓝色标识处于同一侧面。

v2-abb55c8aea2f371f21afe86d8c03f386_720w.webp

2. 快速上手

2.1开发环境准备

如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》,并按照其相关的操作,进行编译环境的部署

在PC端Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,具体如下所示。

cd ~/develop_environment ./run.sh 2204

v2-d82ad9d6fcb0b4ea2e03a6516c5b6e63_720w.webp

2.2 源码下载以及例程编译

在EASY-EAI编译环境下创建存放源码仓库的管理目录:

cd /opt mkdir EASY-EAI-Toolkit cd EASY-EAI-Toolkit

通过git工具,在管理目录内克隆远程仓库

git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-1126B.git

v2-daa8dd52b47b9cf3254680d7b5dd18d9_720w.webp

注:

* 此处可能会因网络原因造成卡顿,请耐心等待。

* 如果实在要在gitHub网页上下载,也要把整个仓库下载下来,不能单独下载本实例对应的目录。

进入到对应的例程目录执行编译操作,具体命令如下所示:

cd EASY-EAI-Toolkit-1126B/Solutions/rtspIPCamera ./build.sh

注:

* 由于依赖库部署在板卡上,因此交叉编译过程中必须保持/mnt挂载。

v2-1d75df849b53fac733a44af80813d256_720w.webp

2.4例程运行

通过串口调试ssh调试,进入板卡后台,定位到例程部署的位置,如下所示:

cd /userdata/Solu

v2-57c0bea5211905e9c9dc017b6ac334b8_720w.webp

运行例程命令如下所示。

./rtspIPCamera

v2-a9de94d1eac778bfc161a6a910151b0a_720w.webp

可用【VLC】或【gst-launch-1.0】等rtspClient通过上述两个url取流查看。

2.5 非本地rtsp拉流

如果需要使用另一台计算机设备作为rtspClinet去拉流,则需要把127.0.0.1(本机IP)替换成rtspServer设备所在局域网的IP地址,具体操作如下。

首先通过ifconfig命令查看板卡的局域网IP地址。

sudo ifconfig

v2-4d0221d8e7f5dfb9fd24f5d2f6edfee2_720w.webp

然后在另外一台计算机开启rtspClinet应用(以VLC为例),填上URL进行拉流。

v2-fdc5790c41e0a75ee962762a76cbcae5_720w.webp

3. 设计说明

3.1 总体逻辑框图

v2-652b807b4a43a8b60ac7fc661ec15e03_720w.webp

3.2 factory逻辑

v2-bcf6fa0c7714dd445514db9e44c2240f_720w.webp

3.3代码组成

本开发实例相关的所有代码,均位于EASY-EAI-Toolkit-1126B/Solutions/rtspIPCamera/中。其中:

总体逻辑位于:EASY-EAI-Toolkit-1126B/Solutions/rtspIPCamera/src/main.cpp

factory逻辑位于:EASY-EAI-Toolkit-1126B/Solutions/rtspIPCamera/src/appSource.cpp

摄像头控制逻辑位于:EASY-EAI-Toolkit-1126B/Solutions/rtspIPCamera/src/camera/

v2-09782ff6a6cd56ee0f0568a52343f7bf_720w.webp

3.4 调用关系

v2-a72451e7037893372053f91ca87eb7c5_720w.webp

4. 开发指南

4.1 Toolkit仓库介绍

v2-535216781c03d14a9150da5e11f965b7_720w.webp

4.2 示例文件&目录结构

4.2.1 开发实例介绍

每个开发实例就是一个独立的项目,项目使用cmake构建自动编译部署。一个最简单的项目至少要包含以下元素:build.sh、CMakeLists.txt、main.c,如下所示。

v2-ce207b6458261f101e2ebb0f5dffa146_720w.webp

具体介绍如下所示。

v2-7a8137c1398098aaeb3f31ddf7b2dc95_720w.webp

4.2.2 可拓展的目录

可拓展的目录是指:开发过程中增加某些功能模块,功能代码。增加模式分为两种:

l 增加已编译的第三方库,在include、libs目录内添加头文件和库文件;

l 增加用户自定义的功能模块,推荐在src目录内增加;

具体情况如下所示,第三方模块相关的文件由include/3rd_model/xxx.h、libs/3rd_model/xxx.a。自定义的功能模块为src/mySrcCode、src/mySrcCode2。

v2-9bab7ed3d048f83aaa1afcd2024b03bd_720w.webp

4.3 CMakeLists.txt文件解析

4.3.1 编译环境配置部分:

第一部分为配置部分,配置部分如下所示。(获取当前方案目录、配置工具链、提取方案名称):

v2-7fcf6620536fa535618ec21c3f3e368a_720w.webp

配置信息如下所示。

v2-5c912cfa806d67519da6145ac8508889_720w.webp

4.3.2 easyeai-api配置部分

第二部分是引入我司的功能组件库(针对当前方案进行:配置EASY EAI API头文件目录${XXX_INCLUDE_DIRS}、源码文件目录${XXX_SOURCE_DIRS}以及所依赖的库参数${XXX_LIBS}):

v2-7fae216a5526981eaa693dfd1ac31039_720w.webp

配置信息如下所示。

v2-d66b8171b21e823c80a04fa862ef4d4f_720w.webp

4.3.3 第三方库配置部分

第三部分配置第三方的库(针对当前方案进行:配置第三方头文件目录、库文件目录、配置第三方库链接参数以及配置源码目录):

v2-3567587bff807046edff9a72665273f8_720w.webp

配置信息如下所示。

例如添加个人库的目录组成方式如下所示。

v2-d14e24ab3b9bd13ffcac0353cccaa46f_720w.webp

aux_source_directory的修改方式为:

aux_source_directory(./src ./src/mySrcCode ./src/mySrcCode2 dir_srcs)

aux_source_directory(./src dir_srcs) aux_source_directory(./src/mySrcCode dir_srcs) aux_source_directory(./src/mySrcCode2 dir_srcs)

4.3.4 本方案配置部分

第四部分配置项目的编译信息,内容如下所示:

v2-17f172e2ae9216541bcf08bf3026f8f2_720w.webp

配置项如下所示。

v2-7376b670edaab4ccc219b66e5cd761b4_720w.webp

4.4 build.sh编译脚本:

4.4.1 路径定位部分

第一部分用于提取目录用于编译操作,内容如下所示:(进入build.sh脚本所在目录,并且提取当前目录绝对路径,提取当前目录名称)

v2-edbe850561f849dad3d8f85811b9f566_720w.webp

4.4.2 清除编译部分

第二部分清除操作,清除目录为build、Release,内容如下所示:(执行build.sh脚本时,带入了参数“clear”,则清空编译输出)

v2-9264e3928b2700860f1dd3fa72e13b06_720w.webp

4.4.3 编译操作

第三部分,编译直接调用cmake,内容如下所示:(重新编译,成部署目录,并把资源自动部署进板卡)

v2-184f095b814f804c5de8b7f8f506cc1d_720w.webp v2-9cb1578b409817daaa3e1d088ae840d2_720w.webp