完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
项目概述: Mjpg-streamer之前大家或许有了解过,它可以从单一组件获取图像并传输到多个输出组件的命令行式的应用程序,将JPEG的文件视频流化并通过互联网将视频流从这里传送到web浏览器上。这将使得在公司或是外地,通过访问家里安装的摄像头查看家里的情况,实现室内监控。这里正是基于此场景借助Dragonboard来实现下局域网内家庭监控。 硬件准备:
==================================================== 软件准备:
具体模型如下: 这里主要采用服务器来存储dragonboard通过摄像头采集到的数据,然后利用PC终端或是一顿段进行查看,在真正要实现外网访问必须要有公网IP或是采用内网映射的方法,而本人所在的网络为校园网,所以这里采用局域网的形式进行实现。具体实现如下: 1.首先安装libjpeg8-dev libv4l-dev subversion相关包:
2.从linux-sunxi.org中提供的仓库地址获取 mjpg-streamer源码
3.进入mjpg-streamer并编译
4.运行start.sh启动脚本
框图如下: 到此可以基本实现局域网内监控了,不过为了更清楚项目源码实现过程,我们可以简单看下mjpg-streamer.c中部分实现代码:
上面是整个项目的部分源码,整个程序的大体框图如下: 源码中getopt_long_only()函数主要是用来将*input中的-h -i -o -v -b的参数解析出来;而option_index是保存long_options中的坐标值,通过strdup(optarg)获取相应的标记后的参数;dlopen()函数负责打开*.so插件,dlsym()负责调用插件中的相关函数。具体还有相关的一些调用函数,感兴趣的话可以继续研究研究。 整个过程中涉及到v4l2接口、socket编程以及多线程编程。通过USB摄像头实现数据的采集(主要用到了Input_uvc.so模块),并将采集到的图像进行压缩处理,最红形成jpg格式图片上次到web上,客户端可以通过HTTP进行访问,具体效果如下图所示: 小结: MJPG-streamer是用于从USB摄像头采集图像,把他们以流的形式通过基于ip的网络传输到浏览器从而降低服务器CPU的开销。因此对于嵌入式设备非常合适,同时由于无需为视频帧压缩,而大大提高CPU效率,这里只是做的简单研究和实现,上面情况是采用局域网来实现监控,如果要实现远程外网则需要一个公网IP,或者是利用花生壳做映射。后面附上MJPG-streamer源码。 关于基本环境搭建部分,和dragonboard底层驱动可以参考前面LED点灯实验,可以参考下面帖子。通过这些实验可以了解这个硬件GPIO的控制和使用,对dragonboard有个整体的把握和入门学习。 2、【DragonBoard 410c试用体验】烧写Debian镜像到EMMC(8.27) https://bbs.elecfans.com/jishu_932909_1_1.html 3、【DragonBoard 410c试用体验】之系统初体验&启动root用户(8.27) https://bbs.elecfans.com/jishu_932915_1_1.html 4、【DragonBoard 410c试用体验】之VNC远程桌面问题(8.27) https://bbs.elecfans.com/jishu_932921_1_1.html 5、【DragonBoard 410c试用体验】DragonBoard 410c官方全套文档(8.27) https://bbs.elecfans.com/jishu_932924_1_1.html 6、【DragonBoard 410c试用体验】之编译测试和LED点灯实验(8.27) https://bbs.elecfans.com/jishu_932932_1_1.html 7、【DragonBoard 410c试用体验】之运行x11vnc -ncache 10解决远程桌面问题(9.2) https://bbs.elecfans.com/jishu_935604_1_1.html 另外关于前面openCV主要实现了图像的特征检测和轮廓提取,在图像处理中主要设计有滤波和增强以及检测,具体可以参考下面帖子帖子。暂时分享到这里,后面有其他项目会继续和大家分享,谢谢! 8、【DragonBoard 410c试用体验】之搭建OpenCV开发环境并Demo测试(9.2) https://bbs.elecfans.com/jishu_935623_1_1.html 9、【DragonBoard 410c试用体验】之添加simpleCV库和Python IDLE(9.7) https://bbs.elecfans.com/jishu_937169_1_1.html 10、【DragonBoard 410c试用体验】之OpenCV加载图片实验(9.10) https://bbs.elecfans.com/jishu_937913_1_1.html 11、【DragonBoard 410c试用体验】之OpenCV均值滤波介绍(9.11) https://bbs.elecfans.com/jishu_938046_1_1.html 12、【DragonBoard 410c试用体验】之OpenCV中canny算子边缘检测(9.11) https://bbs.elecfans.com/jishu_938083_1_1.html 13、【DragonBoard 410c试用体验】 之OpenCV中之图像角点检测实现(9.13) https://bbs.elecfans.com/jishu_938483_1_1.html 14、【DragonBoard 410c试用体验】cvThreshold阈值操作实现二值图像(10.7) https://bbs.elecfans.com/jishu_943277_1_1.html 附件:
mjpg-streamer源码.tar.gz
(2.75 MB, 下载次数: 6
)
|
|
相关推荐
1 个讨论
|
|
好牛掰的样子 虽然看不懂~~~~
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
80个成员聚集在这个小组
加入小组Qualcomm_Snapdragon_VR_SDK SvrPlugin脚本简介(1)
1673 浏览 0 评论
【DragonBoard 410c试用体验】之OpenCV中canny算子边缘检测
8979 浏览 0 评论
【DragonBoard 410c】汇总帖(2016.10.25更新)
36061 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 07:55 , Processed in 0.646829 second(s), Total 62, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号