分享一个树莓派延时摄影和视频制作代码

新浪微博 QQ空间

心血来潮,想着做一个阳台花草生长的延时视频。阳台上正好有个树莓派,只需要一个摄像头即可。说做就做,500万像素的树莓派摄像头,包邮只需要30元。基本够够用了。接好线,固定好摄像头位置。

效果如下图:

树莓派摄像头

树莓派安装和配置摄CSI接口的摄像头不复杂,首先安装一个raspi-config软件,执行该命令,启用摄像头模块,此时就可以使用raspistill抓取照片了。如果需要使用motion等软件做实时监控,那么还需要在modules load配置文件中增加bcm2835-v4l2此配置。一切都很顺利,捕捉到第一张照片。

编写代码定时拍摄图片。因为考虑要捕捉清晨和黄昏时的光线变化,代码做了一些特殊的逻辑。在清晨和黄昏捕捉图片的频率加高,在凌晨0~5点之间,由于阳台光线不佳,摄像头采集到的照片是全黑的,因此不需要拍摄。拍摄完照片每天保存一次到HOME-NAS上面。最终定时捕捉照片的代码如下:

01#!/bin/bash
02 
03mkdir /root/pics >/dev/null 2>&1
04mkdir /var/piccap >/dev/null 2>&1
05touch /var/piccap/lastbtime
06sleeptime=60
07busyinterval=3
08normalinterval=30
09sleepcount=0
10 
11capPic ()
12{
13    timestr=$(date +%Y%m%d%H%M%S)
14        raspistill -t 5000 -o /root/pics/image_${timestr}.jpg -q 100 -n -rot 180
15}
16 
17checkAndUpload ()
18{
19        lastbtime=$(cat /var/piccap/lastbtime)
20        nowtime=$(date +%Y%m%d)
21        if [ -z "${lastbtime}" -o "${lastbtime}" != "${nowtime}" ]
22        then
23                umount /mnt/homenas
24                mount -t cifs -o username=User,password=Password //22.22.22.3/share /mnt/homenas/
25                if [ $? -eq 0 ]
26                then
27                        for i in $(ls /root/pics/image_*.jpg)
28                        do
29                                mv $i /mnt/homenas/piccap
30                        done
31                        umount /mnt/homenas
32                        echo ${nowtime} > /var/piccap/lastbtime
33                fi  
34        fi  
35}
36 
37while :
38do
39    checkAndUpload
40    hour=$(date +%H)
41    min=$(date +%M)  
42    if [ ${hour} -eq 5 -a ${min} -gt 30 ] || [ ${hour} -ge 17 -a ${hour} -le 19 -o ${hour} -ge 6 -a ${hour} -le 8 ]
43    then
44        # 上午5点半~9点,晚上5点至8点,每隔3分钟拍摄一张。
45        [ ${sleepcount} -eq 0 ] && capPic
46        [ ${sleepcount} -ge ${busyinterval} ] && capPic && sleepcount=0
47    elif [ ${hour} -ge 0 -a ${hour} -le 4 ]
48    then
49        # 凌晨0点到4点不抓取照片。
50        sleepcount=0
51    else
52        # 其他时间段每隔30分钟抓取一张。
53        [ ${sleepcount} -eq 0 ] && capPic
54        [ ${sleepcount} -ge ${normalinterval} ] && capPic && sleepcount=0
55    fi
56    sleepcount=$(expr ${sleepcount} + 1)
57    sleep ${sleeptime}
58done

处理照片并生成视频的命令行为:

新浪微博 QQ空间

| 1 分2 分3 分4 分5 分 (5.00- 2票) Loading ... Loading ... | 这篇文章归档在:实用脚本, 数码硬件, 软件应用 | 标签: , , , . | 永久链接:链接 | 评论(0) |

评论

邮箱地址不会被泄露, 标记为 * 的项目必填。

8 - 2 = *



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <img alt="" src="" class=""> <pre class=""> <q cite=""> <s> <strike> <strong>