parent
0767239f30
commit
243aa1ac1a
@ -0,0 +1,40 @@ |
||||
#!/bin/bash |
||||
|
||||
DATA_DEVICE_UUID="C6CE6C2BCE6C1649" |
||||
MOUNT_PATH="/mnt/extern" |
||||
DATA="${MOUNT_PATH}/timelapse" |
||||
CLIENT="timelapse@192.168.111.2" |
||||
CLIENT_FOLDER="/timelapse" |
||||
|
||||
if [[ "${1}" =~ [0-9]{8} ]] |
||||
then |
||||
DATE=${1} |
||||
else |
||||
DATE=`date --date="1 day ago" +%Y%m%d` |
||||
fi |
||||
|
||||
mountpoint -q ${MOUNT_PATH} |
||||
if [ ${?} != 0 ] |
||||
then |
||||
sudo mount --uuid ${DATA_DEVICE_UUID} -o uid=1000,gid=1000,umask=0022 ${MOUNT_PATH} || echo "Cannot mount data device with UUID ${DATA_DEVICE_UUID}!"; exit 1 |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}" ] |
||||
then |
||||
mkdir -p ${DATA} |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}/video" ] |
||||
then |
||||
mkdir -p "${DATA}/video" |
||||
fi |
||||
|
||||
# sort files |
||||
mkdir -p "${DATA}/daily" |
||||
for i in `find ${DATA}/data/ -name "${DATE}*.jpg"` |
||||
do |
||||
if [ ! -e "${DATA}/daily/`basename ${i}`" ] |
||||
then |
||||
ln ${i} "${DATA}/daily" |
||||
fi |
||||
done |
@ -0,0 +1,41 @@ |
||||
#!/bin/bash |
||||
|
||||
DATA_DEVICE_UUID="C6CE6C2BCE6C1649" |
||||
MOUNT_PATH="/mnt/extern" |
||||
DATA="${MOUNT_PATH}/timelapse" |
||||
CLIENT="timelapse@192.168.111.2" |
||||
CLIENT_FOLDER="/timelapse" |
||||
|
||||
mountpoint -q ${MOUNT_PATH} |
||||
if [ ${?} != 0 ] |
||||
then |
||||
sudo mount --uuid ${DATA_DEVICE_UUID} -o uid=1000,gid=1000,umask=0022 ${MOUNT_PATH} || echo "Cannot mount data device with UUID ${DATA_DEVICE_UUID}!"; exit 1 |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}" ] |
||||
then |
||||
mkdir -p ${DATA} |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}/in" ] |
||||
then |
||||
mkdir -p "${DATA}/in" |
||||
fi |
||||
|
||||
rsync -q -a --remove-source-files "${CLIENT}:${CLIENT_FOLDER}/*.jpg" "${DATA}/in" |
||||
|
||||
if [ ! -e "${DATA}/data" ] |
||||
then |
||||
mkdir -p "${DATA}/data" |
||||
fi |
||||
|
||||
for i in `find "${DATA}/in/" -name "*.jpg" -type f` |
||||
do |
||||
if [ `stat -c%s ${i} ` -gt 0 ] |
||||
then |
||||
#convert -quiet ${i} -resize 1080 "${DATA}/data/`basename ${i}`" |
||||
daystring=`basename ${i} | cut -d"_" -f1 | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)-\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\3\.\2\.\1 \4:\5/'` |
||||
convert -quiet ${i} -resize 1080 -gravity SouthEast -pointsize 22 -fill white -annotate +30+30 "${daystring}" "${DATA}/data/`basename ${i}`" |
||||
fi |
||||
rm "${i}" |
||||
done |
@ -0,0 +1,49 @@ |
||||
#!/bin/bash |
||||
|
||||
DATA_DEVICE_UUID="C6CE6C2BCE6C1649" |
||||
MOUNT_PATH="/mnt/extern" |
||||
DATA="${MOUNT_PATH}/timelapse" |
||||
CLIENT="timelapse@192.168.111.2" |
||||
CLIENT_FOLDER="/timelapse" |
||||
|
||||
set -x |
||||
|
||||
if [[ "${1}" =~ [01]*[0-9] ]] |
||||
then |
||||
MONTH=${1} |
||||
else |
||||
MONTH=`date --date="1 month ago" +%m` |
||||
fi |
||||
YEAR=`date --date="1 month ago" +%Y` |
||||
|
||||
mountpoint -q ${MOUNT_PATH} |
||||
if [ ${?} != 0 ] |
||||
then |
||||
sudo mount --uuid ${DATA_DEVICE_UUID} -o uid=1000,gid=1000,umask=0022 ${MOUNT_PATH} || echo "Cannot mount data device with UUID ${DATA_DEVICE_UUID}!"; exit 1 |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}" ] |
||||
then |
||||
mkdir -p ${DATA} |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}/video" ] |
||||
then |
||||
mkdir -p "${DATA}/video" |
||||
fi |
||||
|
||||
# sort files |
||||
mkdir -p "${DATA}/monthly" |
||||
monthly_counter=0 |
||||
for i in `find ${DATA}/data/ -name "${YEAR}${MONTH}*.jpg"` |
||||
do |
||||
monthly_counter=$((monthly_counter + 1)) |
||||
if [ ${monthly_counter} -ge 30 ] |
||||
then |
||||
if [ ! -e "${DATA}/monthly/`basename ${i}`" ] |
||||
then |
||||
ln ${i} "${DATA}/monthly" |
||||
fi |
||||
monthly_counter=0 |
||||
fi |
||||
done |
@ -0,0 +1,47 @@ |
||||
#!/bin/bash |
||||
|
||||
MOUNT_PATH="/mnt/extern" |
||||
DATA="${MOUNT_PATH}/timelapse" |
||||
CLIENT_FOLDER="/timelapse" |
||||
|
||||
DATA_FOLDER="" |
||||
|
||||
case ${1} in |
||||
daily) |
||||
DATA_FOLDER="${1}" |
||||
DATE=`date --date="1 day ago" +%Y%m%d` |
||||
;; |
||||
weekly) |
||||
DATA_FOLDER="${1}" |
||||
DATE=`date --date="1 week ago" +%Y%m%d` |
||||
;; |
||||
monthly) |
||||
DATA_FOLDER="${1}" |
||||
DATE=`date --date="1 month ago" +%Y%m%d` |
||||
;; |
||||
*) |
||||
DATA_FOLDER="yearly" |
||||
DATE=`date +%Y%m%d` |
||||
;; |
||||
esac |
||||
|
||||
mountpoint -q ${MOUNT_PATH} |
||||
if [ ${?} != 0 ] |
||||
then |
||||
sudo mount --uuid ${DATA_DEVICE_UUID} -o uid=1000,gid=1000,umask=0022 ${MOUNT_PATH} || echo "Cannot mount data device with UUID ${DATA_DEVICE_UUID}!"; exit 1 |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}" ] |
||||
then |
||||
echo "No directory: ${DATA}" |
||||
exit 401 |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}/video" ] |
||||
then |
||||
echo "No directory: ${DATA}/video" |
||||
exit 402 |
||||
fi |
||||
|
||||
# sort files |
||||
ffmpeg -y -loglevel quiet -framerate 30 -pattern_type glob -i "${DATA}/${DATA_FOLDER}/*.jpg" -vcodec libx265 -crf 20 -vf scale=1920:1080 "${DATA}/video/${DATA_FOLDER}_${DATE}.mp4" |
@ -0,0 +1,56 @@ |
||||
#!/bin/bash |
||||
|
||||
DATA_DEVICE_UUID="C6CE6C2BCE6C1649" |
||||
MOUNT_PATH="/mnt/extern" |
||||
DATA="${MOUNT_PATH}/timelapse" |
||||
CLIENT="timelapse@192.168.111.2" |
||||
CLIENT_FOLDER="/timelapse" |
||||
|
||||
if [[ "${1}" =~ [0-9]{2} ]] |
||||
then |
||||
WEEK=${1} |
||||
else |
||||
WEEK=`date --date="last monday" +%V` |
||||
fi |
||||
current_week=`date +'%V'` |
||||
current_week_diff=$((${current_week}-${WEEK})) |
||||
DATE_WEEK=`date --date="${current_week_diff} weeks ago" +%Y%m%d` |
||||
DATE_START=`date --date="${DATE_WEEK}" +%s` |
||||
DATE_STOP=$(($DATE_START+7*86400)) |
||||
|
||||
mountpoint -q ${MOUNT_PATH} |
||||
if [ ${?} != 0 ] |
||||
then |
||||
sudo mount --uuid ${DATA_DEVICE_UUID} -o uid=1000,gid=1000,umask=0022 ${MOUNT_PATH} || echo "Cannot mount data device with UUID ${DATA_DEVICE_UUID}!"; exit 1 |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}" ] |
||||
then |
||||
mkdir -p ${DATA} |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}/video" ] |
||||
then |
||||
mkdir -p "${DATA}/video" |
||||
fi |
||||
|
||||
# sort files |
||||
rm -rf "${DATA}/weekly" |
||||
mkdir -p "${DATA}/weekly" |
||||
weekly_counter=0 |
||||
for i in `find ${DATA}/data/ -name "${DATE}*.jpg"` |
||||
do |
||||
seconds_unixtime=`echo "${i}" | sed 's/^.\+_\([0-9]\+\).*/\1/'` |
||||
if [ "${seconds_unixtime}" -ge "${DATE_START}" ] || [ "${seconds_unixtime}" -lt "${DATE_STOP}" ] |
||||
then |
||||
weekly_counter=$((weekly_counter + 1)) |
||||
if [ ${weekly_counter} -ge 7 ] |
||||
then |
||||
if [ ! -e "${DATA}/weekly/`basename ${i}`" ] |
||||
then |
||||
ln ${i} "${DATA}/weekly" |
||||
fi |
||||
weekly_counter=0 |
||||
fi |
||||
fi |
||||
done |
@ -0,0 +1,46 @@ |
||||
#!/bin/bash |
||||
|
||||
DATA_DEVICE_UUID="C6CE6C2BCE6C1649" |
||||
MOUNT_PATH="/mnt/extern" |
||||
DATA="${MOUNT_PATH}/timelapse" |
||||
CLIENT="timelapse@192.168.111.2" |
||||
CLIENT_FOLDER="/timelapse" |
||||
|
||||
if [[ "${1}" =~ [0-9]{4} ]] |
||||
then |
||||
YEAR=${1} |
||||
else |
||||
YEAR=`date --date="1 year ago" +%Y` |
||||
fi |
||||
|
||||
mountpoint -q ${MOUNT_PATH} |
||||
if [ ${?} != 0 ] |
||||
then |
||||
sudo mount --uuid ${DATA_DEVICE_UUID} -o uid=1000,gid=1000,umask=0022 ${MOUNT_PATH} || echo "Cannot mount data device with UUID ${DATA_DEVICE_UUID}!"; exit 1 |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}" ] |
||||
then |
||||
mkdir -p ${DATA} |
||||
fi |
||||
|
||||
if [ ! -e "${DATA}/video" ] |
||||
then |
||||
mkdir -p "${DATA}/video" |
||||
fi |
||||
|
||||
# sort files |
||||
mkdir -p "${DATA}/yearly" |
||||
yearly_counter=0 |
||||
for i in `find ${DATA}/data/ -name "${YEAR}*.jpg"` |
||||
do |
||||
yearly_counter=$((yearly_counter + 1)) |
||||
if [ ${yearly_counter} -ge 360 ] |
||||
then |
||||
if [ ! -e "${DATA}/yearly/`basename ${i}`" ] |
||||
then |
||||
ln ${i} "${DATA}/yearly" |
||||
fi |
||||
yearly_counter=0 |
||||
fi |
||||
done |
@ -0,0 +1,43 @@ |
||||
#!/bin/bash |
||||
# |
||||
# Exposure mode options : --exposure |
||||
# off,auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks |
||||
# |
||||
# Flicker avoid mode options : --flicker |
||||
# off,auto,50hz,60hz |
||||
# |
||||
# AWB mode options : --awb |
||||
# off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon |
||||
# |
||||
# Image Effect mode options : --imxfx |
||||
# none,negative,solarise,sketch,denoise,emboss,oilpaint,hatch,gpen,pastel,watercolour,film,blur,saturation,colourswap,washedout,posterise,colourpoint,colourbalance,cartoon |
||||
# |
||||
# Metering Mode options : --metering |
||||
# average,spot,backlit,matrix |
||||
# |
||||
# Dynamic Range Compression (DRC) options : --drc |
||||
# off,low,med,high |
||||
|
||||
QUALITY=70 |
||||
MODE=2 |
||||
AWB="auto" |
||||
EXPOSURE="auto" |
||||
TIMEOUT=4000 |
||||
RASPISTILL_OPTIONS="--mode ${MODE} --quality ${QUALITY} --encoding jpg --thumb none --nopreview --awb ${AWB} --exposure ${EXPOSURE} --timeout ${TIMEOUT}" |
||||
OUTPUT_DIR="/timelapse" |
||||
SNAPSHOT_DELAY=10 |
||||
|
||||
while [ 1 ] |
||||
do |
||||
DATE=`date +%Y%m%d-%H%M%S` |
||||
SEC=`date +%s` |
||||
TIME_VALUES=`/usr/bin/time -v raspistill -v ${RASPISTILL_OPTIONS} -o "${OUTPUT_DIR}/${DATE}_${SEC}.jpg" 2>&1` |
||||
TIME_USED=`echo "${TIME_VALUES}" | grep "wall clock" | sed 's/^.\+\([0-9]\+\):\([0-9]\+\.[0-9]\+\)\s*$/\1:\2/'` |
||||
min=`echo ${TIME_USED} | cut -d":" -f1` |
||||
sec=`echo ${TIME_USED} | cut -d":" -f2` |
||||
sleep=`bc << EOF |
||||
${SNAPSHOT_DELAY}-(${min}*60+${sec})-0.1 |
||||
EOF` |
||||
sleep ${sleep} |
||||
done |
||||
echo "Exiting $0 at `date`" |
Loading…
Reference in new issue