基于 瑞芯微 RK1126 平台的项目总结(包含AI 画中画 RTSP OSD 录像 双路摄像头)

其实这个项目结束一两个月了  中间过了个年  就把这事给忘记了

趁现在比较空记录一下 

说下概况 项目是基于RK1126平台 硬件配置2个摄像头一个广角一个长焦

需要支持画中画在广角摄像头的画面中 显示长焦摄像头的大概位置 

但是由于硬件还是驱动没有搞好 导致了两个摄像头不能同时工作,所以 对于应用程序就用同一个摄像头模拟两个摄像头来实现画中画 

主要的功能如下

  • 1.支持三路RTSP流 主摄像头高清码流 普通码流 副摄像头码流
  • 2.支持视频参数的设置 H264/H265 分辨率 码率 CBR/VBR 等
  • 3.支持设置ISP 包括 明度亮度饱和度等 
  • 4.支持设置摄像头的OSD 多个OSD 多个位置 OSD支持矢量字体替换
  • 5.支持实时AI识别 支持多模型的AI 同时支持AI模型文件更新功能 支持设置AI识别帧数间隔并将 结果反馈给平台端
  • 6.支持上传JPG图片进行AI识别 同时将识别结果 反馈给平台端
  • 7.支持AI模型类别 以及阈值的配置
  • 8.支持拍照/录像
  • 9.支持文件下载功能,将之前拍下的照片或者录像的文件 发送给平台
  • 10.云台控制(硬件未配置 暂未实现)
  • 11.使用json格式配置文件对程序进行配置 
  • 12.支持画中画 并支持实时开启或者关闭
  • 13.将平台相关的代码进行分离 实现代码解耦

由于本身没有屏幕

所以所有的操作都通过平台HTTP 方式和平台侧通信 

由于手头现在没有设备 放下之前的画面 手一直在动 VBR 比较模糊 画中画功能如下:

 

看下程序入口

 

 

 

主函数都在上面了 其实没有去整理  将启动部分 和 结束部分的资源清理 放在两个独立的函数里面看会更清晰  但是现在没有硬件板子 调试 就不动他了

启动之后 创建一个程序的结构体 做些初始化工作包括 读取配置文件 视频参数默认值 rtsp的URL路径等等 

然后检查AI模型文件的有效性

创建程序主任务队列 以及其他用于 AI识别结果的队列 录像时候的视频流队列等等

然后开启了几个线程 与平台通信的HTTP线程 主任务线程 以及用于将AI结果发给平台的Socket线程

然后去开启camera 然后一个while循环 

while循环中 有个 去检查flash剩余空间的函数 如果 不满足多少 就要去删除比较早的录制的视频和照片

后面就是程序结束时候的资源回收

程序和平台交互主要是通过HTTP方式 等待平台下发消息给程序

包括下载文件 上传文件 一起其他录像 设置ISP等消息 其中又包含GET POST两种方式

 

收到HTTP请求之后程序会将消息做转发 并放到 程序的主任务队列里面

比如下面 画中画开关的消息

 

然后在主任务队列中取出消息做实际的处理

 

至于相机部分的配置 AI的识别等等 平台相关的功能 抽象出来放在另一个 类中实现 

如下

 至于后面的则都是 处理的细节部分了 

有业务需求的 可以联系博主  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QMCY_jason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值