智能监控项目中期总结1-架构
2014-03-20 18:17
211 查看
从过完年后就一直忙于老板的项目,我负责其中的流媒体服务器搭建部分,结合项目需求,能提供出图像帧用于算法处理。
之前,我们做了一个监控系统,是基于B/S架构的,客户端直接读取各种网络摄像头,然后解码显示 ;如果进行算法处理,就直接在客户端解H264,得到一帧图,然后转化成我们Opencv中常用的Mat图进行算法处理,完了直接以RGB格式显示。这样实现到是挺容易的,但不是一个好的产品,特别是现在都是C/S架构的,所以,老板决定转成C/S架构,在服务器端解码得到图片进行我们自己的算法处理,然后转发到客户端去显示,这样搞起来就复杂多了,但同时也减轻了客户端的工作,让服务端和客户端各司其职。
大致的架构师这样一个想法,都是基于H264的。我首先在服务端从网络摄像头读取RTSP流(市场上大都是这样读取视频),然后解析RTSP流,得到RTP包,然后将RTP包组包,得到H264的帧,接着用FFMPEG解码,得到一帧MAT图。好,这就是一个部分,MAT图给算法进行处理后肯定变了(比如用于人脸检测则有个框人脸的框,用于行人检测、图像分割、动目标检测等),算法处理后的MAT图是RGB格式的,我肯定不能就这么传出去了,那样太大了。所以后面部分是我得到MAT图后进行H264编码,用的是X264库,其实也可以用FFmpeg,因为FFmpeg编译的时候可以包含X264库。编码完后就得传出去了,以什么样的形式呢,当然是RTP包封装了,这里我就开始着手写代码了,一部部一部分攻破,但后来发现其实我对这个流程还是没有研究彻底,导致了我后面的一系列失误。后面到底怎样了,这样看起来应该没问题呀?大家可以先想想,后面我会慢慢讲。
服务器端流程图:
客户端就对应的Socket接收,然后解码显示即可。
下面开始写代码。
相关文章推荐
- 微博广告Hubble系统:秒级大规模分布式智能监控平台架构实践
- 如何架构一个ios项目 个人经验总结
- Linux-视频监控系统(14)-项目总结
- 【厚积薄发】编程技术项目总结3—定制版本架构设计与实现
- 项目架构设计总结:基于阿里云搭建的轻量级架构
- 短视频 | 10分钟解读智能问答开源项目YodaQA架构原理
- MetaQ (RocketMQ) 小包消息优化项目中期总结
- 智能一代云平台(十一):Eclipse启动项目报启动上下文失败问题解决方案总结
- 6-29项目中期总结
- IOS下视频监控项目总结
- 智能管家项目总结(1)
- 6-29项目中期总结
- 智能一代云平台(三十四):后端架构一些总结
- 通过对MVP架构的学习,继续对练习的项目做总结。
- CloudTV_BasedOnWebRTC 项目中期总结
- 对一个项目架构的总结
- vkeyi项目架构设计总结
- 监控平台项目之CSS总结——基于angularjs、bootstrap、jquery等框架
- 智能自然语言交流系统项目总结
- Tair LDB基于Prefixkey的范围查找性能优化项目中期总结