酷播亮新聞
最棒的知識補給站

分享一個樹莓派延時攝影和視訊製作程式碼

文章摘要: [ ${sleepcount} -eq 0 ] && capPic [ ${sleepcount} -eq ${normalinterval} ] && capPic && sleepcount=0 fi sleepcount=$(expr ${sleepcount} + 1) sleep ${sl

心血來潮,想著做一個陽臺花草生長的延時視訊。陽臺上正好有個樹莓派,只需要一個攝像頭即可。說做就做,500萬畫素的樹莓派攝像頭,包郵只需要30元。基本夠夠用了。接好線,固定好攝像頭位置。

效果如下圖:

樹莓派安裝和配置攝CSI介面的攝像頭不復雜,首先安裝一個raspi-config軟體,執行該命令,啟用攝像頭模組,此時就可以使用raspistill抓取照片了。如果需要使用motion等軟體做實時監控,那麼還需要在modules load配置檔案中增加bcm2835-v4l2此配置。一切都很順利,捕捉到第一張照片。

編寫程式碼定時拍攝圖片。因為考慮要捕捉清晨和黃昏時的光線變化,程式碼做了一些特殊的邏輯。在清晨和黃昏捕捉圖片的頻率加高,在凌晨0~5點之間,由於陽臺光線不佳,攝像頭採集到的照片是全黑的,因此不需要拍攝。拍攝完照片每天儲存一次到HOME-NAS上面。最終定時捕捉照片的程式碼如下:

#!/bin/bash

mkdir /root/pics >/dev/null 2>&1

mkdir /var/piccap >/dev/null 2>&1

touch /var/piccap/lastbtime

sleeptime=60

busyinterval=3

normalinterval=30

sleepcount=0

capPic ()

{

timestr=$(date +%Y%m%d%H%M%S)

raspistill -t 5000 -o /root/pics/image_${timestr}.jpg -q 100 -n -rot 180

}

checkAndUpload ()

{

lastbtime=$(cat /var/piccap/lastbtime)

nowtime=$(date +%Y%m%d)

if [ -z “${lastbtime}” -o “${lastbtime}” != “${nowtime}” ]

then

umount /mnt/homenas

mount -t cifs -o username=User,password=Password //22.22.22.3/share /mnt/homenas/

if [ $? -eq 0 ]

then

for i in $(ls /root/pics/image_*.jpg)

do 

mv $i /mnt/homenas/piccap

done

umount /mnt/homenas

echo ${nowtime} > /var/piccap/lastbtime

fi   

fi   

}

while :

do

checkAndUpload

hour=$(date +%H)

min=$(date +%M)   

if [ ${hour} -eq 5 -a ${min} -gt 30 ] || [ ${hour} -ge 17 -a ${hour} -le 19 -o ${hour} -ge 6 -a ${hour} -le 8 ]

then

# 上午5點半~9點,晚上5點至8點,每隔3分鐘拍攝一張。

[ ${sleepcount} -eq 0 ] && capPic

[ ${sleepcount} -eq ${busyinterval} ] && capPic && sleepcount=0

elif [ ${hour} -ge 0 -a ${hour} -le 4 ]

then

# 凌晨0點到4點不抓取照片。

sleepcount=0

else

# 其他時間段每隔30分鐘抓取一張。

[ ${sleepcount} -eq 0 ] && capPic

[ ${sleepcount} -eq ${normalinterval} ] && capPic && sleepcount=0

fi

sleepcount=$(expr ${sleepcount} + 1)

sleep ${sleeptime}

done

處理照片並生成視訊的命令列為:

ffmpeg -r 3 -i img_%d.jpg -t 73 -vcodec libx264 D:/test.mp4

其中-r為幀率,-t為視訊總時長,二者之積等於照片張數即可。

如有侵權請來信告知:酷播亮新聞 » 分享一個樹莓派延時攝影和視訊製作程式碼