Есть идея создавать из записаных zoneminder эвентов суточное видео... Нагуглил я такой вот скрипт:
#!/bin/bash
# камера по-умолчанию, если запущен без параметров
cam_default=Vhod
#дата по-умолчанию - вчера
workdate_default=`date -d yesterday`
workdate=$1
cam=$2
if [ "Z"$1 = "Z" ]; then
workdate=$workdate_default
fi
if [ "Z"$2 = "Z" ]; then
cam=$cam_default
fi
# путь до ZM
inpath=/video/${cam}
# Где хранить картинки (временно)
jpgpath=~/jpg
# Куда складывать видеофайлы
videopath=/video/Arch-Days
mydate=`date -d "${workdate}" +%Y-%m-%d`
filename=${cam}-${mydate}.avi
zmdatabase=zm
echo workdate is ${mydate}
echo camera is ${cam}
mkdir -p ${jpgpath} 2>/dev/null
mkdir -p ${videopath} 2>/dev/null
# Выборка нужных файлов из базы данных
# по вкусу (если есть пароль) подкрутить парамерты mysql -u user --password=password
files=`mysql -u USER_NAME --password=USER_PASSWORD ${zmdatabase} -s -e "select eventid,right(concat('00',frameid),3) from Frames where date(timestamp)='${mydate}' order by eventid,frameid;" | awk '{print($1"/"$2"-capture.jpg");}'`
i=0
for f in ${files}
do
# проверка на размер файла, ZM иногда пишет картинки с нулевым размером
# а ffmpeg потом спотыкается
if [ `ls -l ${inpath}/${f} | awk '{print $5}'` -gt 0 ]; then
i=$((i+1))
p=$(printf %.8d $i)
cp -p ${inpath}/$f ${jpgpath}/$p.jpg
fi
done
rm ${videopath}/${filename} 2>/dev/null
# Кодируем видео из картинок
ffmpeg -r 100 -an -i ${jpgpath}/%08d.jpg -vcodec h263p -b 1500k ${videopath}/${filename}
#Удаляем старые файлы
rm ${jpgpath}/*.jpg 2>/dev/null
спотыкается на том что пытается найти файлы картинок эвента в
/video/764/001-capture.jpg
а они лежат в
/video/12/04/13/764/001-capture.jpg
Вопрос как исправить? Ну или мож но ли вывод
date=$(date +%F)
например 2012-04-13 разбить на три переменные 12, 04 и 13 можно конечно сделать:
year=$(date +%Y)
month=$(date +%m)
day=$(date +%d)
но я не знаю как сделать тогда чтобы от $year вместо 2012 оставить только 12
Подскажите пожалуйста.