Это было первый доводом к написанию своего решения. А вторым доводом стало отсутствие желания тратить деньги на отдельное устройство для записи видео.
В моем случае, достаточно статичного изображения с 2-х камер, раз в 10 минут.
Итак задача:
1. Делать снимки с 2-х IP камер, раз в 10 минут.
2. Склеивать полученные 2 снимка в 1 файл.
3. Выкладывать полученное изображение на Google Drive.
Скрипт написан на Bash и запускается на Raspberry Pi2(малина у меня также выполняет другие функции). Для склеивания изображений понадобиться ImageMagick. Для синхронизации с диском гугла- Grive.
Самое сложное найти URL по которому китайская IP камера отдает изображение по протоколу RSTP. В этом может помочь этот сайт.
#!/bin/bash
TIME=$(date +%H-%M)
DATE=$(date +%d-%m)
DIRECTORY=/mnt/USB/Video/$DATE
if [ ! -d "$DIRECTORY" ]; then
mkdir $DIRECTORY
fi
for i in 1 2
do
if ping -c 3 192.168.1.25$i > /dev/null ; then
avconv -rtsp_transport tcp -i \
"rtsp://192.168.1.25$i/user=admin&password=123123&channel=1&stream=0.sdp" \
-f image2 -vframes 1 -pix_fmt yuvj420p /tmp/$TIME-CAM$i.jpeg
fi
done
if [ -f /tmp/$TIME-CAM1.jpeg ] & [ -f /tmp/$TIME-CAM2.jpeg ]; then
convert +append -strip -interlace Plane -quality 60 \
/tmp/$TIME-CAM1.jpeg /tmp/$TIME-CAM2.jpeg /tmp/$TIME.jpeg
mv /tmp/$TIME.jpeg $DIRECTORY/
rm /tmp/$TIME-CAM1.jpeg
rm /tmp/$TIME-CAM2.jpeg
else
for i in 1 2
do
mv /tmp/$TIME-CAM$i.jpeg $DIRECTORY/
done
fi
if ! ps aux | grep "[g]rive" > /dev/null; then
cd /mnt/USB && /usr/local/bin/grive –dry-run
fi
Дальше остается только добавить задание в Cron и наслаждаться результатом.
Комментариев нет:
Отправить комментарий