俩月不更新了,今天更一波。
学期实习真的挺要命。而且好不容易熬到假期,老师还把我卷子丢了,得再考一次,你可真行。
敏捷开发是个好东西,虽然也会遇到问题。(废话+1)
老话重复。嵌入式是一种性能与功能平衡的艺术。前面是走上手动封装FLV的路线,是因为板子本身的存储太小了,感觉性能不是很充足,就准备直接备份H264流。另外我发现还有可能把程序放到SD卡里面跑。这样就能实现后续的升级,而不需要重新烧录系统。这会给工程带来巨大的变化,所以重新整理了一下整个工程的设计。
看一下以前的设计。
- 实战SDK,编译app的hello word和自己的镜像1.1,0,1.5
- 实现对自己的APP进行编译和打包1.2,1.1,1
- 学习烧录1.3,0, 0.5
- 学习文件管理,测试SD卡支持程度 1.4, 0,0.5
- 网口网络通讯未实现,结合计算机网络和openwrt进行相关学习2.1,0,3
- 进行图像处理库的移植和测试2.2, 1.2, 2
- 保持官方内置OS,测试摄像头的拍照录制,并进行性能评估,这包括内存2.3, 1.2,1
- 编写业务代码3.1,2.3,2
- 实现Linux的裁切和包定制3.2, 3.1,2
- 上位机软件的编写4.1,0,5
- 解决上位机和单片机的通讯问题4.2,4.1,5
- 修补安全性问题5.1,all, 1
- 导出开发版本镜像 5.2, 5.1, 0.2
- 测试5.3, all,1
- 导出公开镜像5.4, all,0.1
显然这种设计模式是做不到快速设计出原型的。有些功能计划的太过细致,另一些则太粗糙了。想想计划不合理的原因之一在于没有对信息和行情评估。
我们的需求:一个节约空间,进行抓录,连上网线能快进快退的离线嵌入式Linux摄像头
重新设计一下,脱离技术能力角度。
- 软件模块:
- 视频的录制和保存(原型机)
- 视频的实时直播(原型机)
- 视频录制的触发的条件(需要测试优化,待实现)
- 视频的文件管理和自动删除 (难度较低,待实现)
- 用户的接口(难度较高,方案待确定)
- 多任务的系统管理模块(难度较高,待实现)
- 软件设计:
- AOV,可以降低帧率的地方降低帧率,压缩空间
- 使用板载脚本引导SD所在的程序,监控系统第一阶段引导
- 系统设置(IP地址,分辨率等需要写系统分区的内容)的单独分区或者文件夹,用于救灾
- 视频的录制和保存,录制引擎,文件格式和大小
- 视频录制的触发的条件,使用图像还是传感器还是混合
- 定义设备工作状态,如安装,正常工作,调监控
- 用户接口,使用网络编程客户端还是网页实现
- PC和板子通讯
- 硬件设计:
- 传感器外设,干簧管,红外,雷达
- 显示器方便debug
目前要做的清单:1.首先完成最低程度的环境配置,包括Linux的配置,启动sd卡视频程序的脚本,以及完整的交叉编译环境。2.接下来把opencv的进程在SD卡上跑通,通过检查视频。3.交叉编译ffmpeg进行视频录像. 4.对视频录像功能优化。
Views: 30