之前写过一篇文章介绍openwrt路由器使用mjpeg-streamer实现摄像头监控,虽然实现上比较简单,效果也不错,但是有个缺点——你得一直看着那个页面,无法做到出现异常情况自动报警的功能。本文介绍另一个软件,能够实现当摄像头中的视频内容有变化时,自动拍照保存。有了这个功能,后面的自动上传/发送邮件/短信之类的也就成为可能。另外在此再次说明:这东西只适合喜欢折腾,知道怎么找资料,并且对Linux较熟悉的人使用。
一、准备条件
基本的硬件条件如前篇博文,在此不表。这次用到的软件叫motion,同样在0909版固件里有。
二、配置motion
之前的mjpeg-streamer没什么要配置的,参数直接写在命令行里就行;这次motion恰恰相反,配置文件大小有几十K。motion配置文件的位置一般是在/etc/motion.conf。
因为选项比较多,下面只写出一些比较重要的选项的值,其他可以用默认值,或者参考motion官网上的documents,那里面写得很详尽,每个参数的解释都有。motion.conf里自带的注释也很完整。
daemon on process_id_file /var/run/motion.pid setup_mode off #如摄像头不支持MJPEG,就只能设成其他的,如6 (YUYV): v4l2_palette 2 #640 x 480 已满足基本需要,太大则占用路由器CPU/带宽: width 640 height 480 #单做自动监控拍照,帧率没必要太高,否则输出的文件很多: framerate 2 auto_brightness off contrast 0 #这个重要,是多少个像素发生改变的时候,保存当前照片。 #640 x 480 的图片,3000已经非常灵敏了: threshold 3000 #下面这个是指定照片保存的文件夹: target_dir /root/camimg quiet on #下面这句是说一旦有照片被拍下来,则执行/root/upload.sh命令, #其中%f参数会自动转化为当前图片文件的路径,传给upload.sh: on_picture_save /root/upload.sh %f
三、制作自动上传脚本
下面就要制作上文提到的/root/upload.sh文件了。文件内容如下:
#!/bin/ash curl -T $1 -u name:password ftp://12.34.56.78/uploads/
很简单,ash是openwrt的shell,这行不用改;第二行是利用curl工具,将图片文件上传到你的FTP里,然后就想干什么干什么啦!
注意:还需要用下面的命令使其可执行:
chmod a+x /root/upload.sh
四、启动motion
说了这么多,该启动motion,测试实际效果了。运行如下命令启动:
motion -c /etc/motion.conf
视实际情况,也可能你的是”motion -c /etc/config/motion”。 总之-c参数指向你的配置文件。
启动好以后,就可以测试了,试试在摄像头前挥挥手臂,然后检查一下你的路由器相应目录里,以及FTP里有没有新生成的jpg文件吧!
如有问题和建议,欢迎留言探讨!
注意:本博客文章皆为原创,转载请注明出处链接,谢谢合作!
本文为悠然居(https://wordpress.youran.me/)的原创文章,转载请注明出处!
你好,我也有个HG255d 刷的也是0909 固件,但是 motion 不知道去哪里下载,想想你请教 我的Q 是 1017938096 谢谢
0909固件里没有motion?我记得是自带motion的啊。
确实没有在固件里自带的话,你也可以去这里下载安装包:
http://downloads.openwrt.org.cn/OpenWrt-DreamBox/packages/ramips/packages/
时间有点久,已经忘了当时是怎么搞的了……
博主好久没有更新文章了……
这段时间一直在国外出差,有点忙呵呵
請問我在樹梅派處理完的影像可以利用motion 上傳至區網嗎? 如果可以請問該怎麼傳上去
快7年前的文章了呵呵,现在不知道motion有没有变化。上传就是用ftp,参考文章里“三、制作自动上传脚本”这部分,写个脚本。