经过不懈努力,摄像头程序终于到了能跑的程度,不只留在github上,在这里也留一下吧,但是不写这么详细了,具体可以查看我的仓库。https://github.com/zhu30844/MontionSense。开学真的很忙,一直没怎么管博客,一眨眼就是上(两)个月的事情了。啊,好一个偷懒的借口!XD
自己测试最长一个星期没出问题,自用应该是够了。
所以下一步呢?
至于这个冰箱警察,临时还是叫冰箱警察吧,然后继续进行,直到完成所有我最初设想的功能(高速写入文件,打上时间标记,友好的前端)。
做一个总结吧,我学到了什么。
这是我第一个完整的项目,完整指的是成分和组件比较多,分析项目需求,基础的c语言,html,工具集(cmake,shell,docker),操作系统的相关知识(线程,锁,文件),框架&技术栈(sqlite,mongoose),RK_SDK。 也是第一次独立设计项目,看文档学习然后写(chao)代码,虽然最后大学作业的味道还是有点浓。
这个看起来很简陋的项目是幸狐论坛第一个项目分享,感谢管理大大能置顶!期待幸狐团队更加优秀的硬件和资源!

除此之外,我有更加宏(逆)伟(天)的nvr设计。在此先大概描述一下。
目前监控存在的问题:
- 安全:现代的监控,数据上云,很难做到完全的安全,安全包括完整性和加密性。厂商的跑路或者服务器的损坏的就能把云端监控打趴下。某些地方泄漏的视频更是吓人。
- 扩展性:非现代的监控,采用廉价的nvr设备,只有一个硬盘和基本的编解码器,难以解决磁盘阵列和灵活使用的问题
- 落后:大部分本地监控界面不友好,使用比较落后的原始技术栈,会给维护,可修复性造成巨大的麻烦。带屏的nvr设备对于设备的检测和管理非常不灵活。同时人物检测,分析统计压根没有可扩展性和微调的可能。
- 价格:非常极端,便宜的一百人民币就4路,贵的直接定制,上千。
- 兼容性:没有通用的摄像头。大部分配合nvr的ip摄像头没有内置储存,没有用户友好的界面,需要更多的产品线,用户需要分摊更高的成本
- 带宽&硬盘写入:大部分摄像头要实时与nvr进行通讯,每一帧都集中处理,大量占用网络带宽。如果占用低带宽,使用压缩,会极大增加录像机的负担。而且实时写入对硬盘负载大。
- 集中式问题:数据集中储存。一旦传输线路发生故障,录制将停止,也就是破坏一点网线就可以轻易逃过录像,网线的质量问题影响也非常大。
- 体积占用:时刻录制虽然全面,但是查询困难,占空间大。对于监控而言需要的是运动的信息,而大部分时间的静态信息是没有用的,没有储存的必要。因此定期抓拍合并视频,遇到场景变化使用高帧率可以极大方便视频的储存以及分析和传输。
因此,根据我对瑞芯微的产品线观察,我对上述问题给出方案。方案的基础是芯片愈加廉价,Linux内核逐渐支持更多标准,基于Linux的边缘计算,服务器,通用协议以及标准能满足大部分需求。
- 安全:这应该取决用户的选择,数据默认就不能上云,双方都吃力不讨好。因此nvr应该使用现在的Linux双网口设备,对内对外进行隔离,更精确应对网络攻击和用户验证
- 扩展性:使用完整现代的的Linux,轻松应对磁盘整列,健康检查,模型升级,加密,各种策略的微调和定制。
- 现代:Linux的介入使使用现代的技术栈成为可能。比如使用java,spring,docker,mysql,redis,opencv甚至扩展计算卡,能使技术下沉,推动发展。
- 价格:带npu的监控芯片逐渐便宜,边缘不愁。大型nvr芯片也不贵,甚至能跑原神。原神,启动!
- 兼容性:Linux摄像头加入OTG能很好更新协议,加密,配对。如果我们使用HLS这种视频格式,也很安全,并且方迁移和查看。同时摄像头加入
- 带宽&硬盘写入:给部分摄像头添加储存比如SD卡或者其他固态储存作为缓存,这样实时性录制就变成了文件同步问题,可以使用调度的手段,能极大了利用带宽和降低磁盘活动空间延长磁盘寿命。
- 集中式问题:如上,即使nvr爆炸,可以直接访问单个监控,像飞机黑匣子一样。我见过很多录像机磁盘损坏的悲剧。而且我们可以及时更新储存策略,即使未同步完成,也可以直接链接到单个摄像头,保证随用随看。
- 体积占用:将运动检测封装到单个摄像头中,由摄像头预录制和临时储存,最后返回处理过的数据,极大降低文件体积。
此外,我的小破站已经两年啦!我一定会找时间继续输出和记录的!加油,极差(读一声)!
Views: 26
