Timelapse с элементами видеонаблюдения

от автора

Здравствуйте, хабрапользователи.

Начитавшись на Хабре о timelapse с Raspberry Pi (раз, два) и после того как трем машинам на стоянке пробили за одну ночь колеса, а за неделю до того одну машину вскрыли, я решил, что нужно организовать малобюджетное видеонаблюдение.

На супер-крутую HD IP камеру с wi-fi бюджета нет, да и, честно говоря, желания, так как люблю покопаться в конфигах, потыкать провода и всякое прочее.

В общем, кому интересно, прошу под кат.

Железная часть

• Центр вселенной процессинга — Raspberry Pi (43$ за плату с картой SD 8Gb + 16грн. за доставку Новой почтой из областного отделения DHL).

• Плата видео захвата – EasyCap на чипсете STK1160 (12$ из Китая).

• Связь с миром – Wi-fi dongle COMFAST (6$ из Китая).

• Резервное питание – NONAME PowerBank (6$ из Китая).

• Аналоговая камера вроде на CCD от Sony (была в наличии много лет).

• Дешевая NONAME вебкамера для примера (7$ из Китая).

• Зарядное устройство для PowerBank на 1А, блок питания для аналоговой камеры на 9В, пара проводов microUSB (всё добро было в наличии).

Программная часть

Операционная система

Устанавливаем на Raspberry Pi Debian Wheezy (взято тут). Я не стал заморачиваться с юниксовым dd и Windows утилитой Win32DiskImager и скачал Noobs Lite, с помощью которой и установил в последствии желанный Raspbian Wheezy.

При первом запуске нас приветствует raspi-config, где можно поменять локаль, пароль пользователя pi, разогнать процессор (советую делать только после установки радиаторов). Далее следует перезагрузка и вот мы в линуксе.

Сразу же советую сделать:

sudo apt-get update sudo apt-get upgrade 
Подключение к сети

Устанавливаем драйвера на wi-fi модуль:

sudo apt-get install firmware-ralink 

Далее прописываемся в своей wi-fi сети

sudo nano /etc/network/interfaces 
allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp 	wpa-ssid “ИМЯ_ВАШЕЙ_СЕТИ” 	wpa-psk “ПАРОЛЬ_К_ВАШЕЙ_СЕТИ” 

Сохраняем. Выполняем команду:

sudo /etc/init.d/networking restart 

и отключаемся от проводного подключения.

Программа захвата

Долго искал что то подходящее, перебирал разные варианты представленные в том числе и на Хабре, но выбор пал на FSwebcam. Устанавливаем его:

sudo apt-get install fswebcam cd /home/pi touch fswebcam.conf sudo nano /home/pi/fswebcam.conf 

И в конфиге пишем:

device /dev/video0 pid 9990 input 0 loop 10 skip 20 resolution 720x576 top-banner title "Stoyanka@RPi" timestamp "%d-%m-%Y %H:%M:%S (%Z)" palette YUYV jpeg 100 save /home/pi/webcam/capture."%Y%m%d%H%M%S".jpg save /usr/share/nginx/www/wc/capture.jpg 

Сохраняем.

По конфигу надеюсь всё просто:
• device /dev/video0 – наше видео устройство
• loop 10 – захват картинки каждые 10 минут
• skip 20 – перед захватом картинки пропускать 20 кадров

Запускаем FSwebcam:

sudo fswebcam –c /home/pi/fswebcam.conf –b 

И смотрим как обновляется картинка.
В дебри nginx лезть не буду и так в интернете есть много простых примеров. Всё добро выводиться на веб страничку с одной картинкой, которая в конфиге FSwebcam сохраняется в /usr/share/nginx/www/wc/capture.jpg.


Пример картинки с вебкамеры утром


Пример картинки с аналоговой камеры утром

По фото можно предположить что фото с вебкамеры лучше, «цветнее», но ночью всё меняется. При чем на вебкамере ночное качество максимум что можно вытянуть, а на аналоговой – дефолтные настройки, какие еще можно подергать.


Пример картинки с вебкамеры ночью


Пример картинки с аналоговой камеры ночью

Да и угол обзора у аналоговой больше. Идем дальше.

Так как мощности Raspberry Pi будет мало для компиляции видео, я решил, что лучше будет это делать на стареньком ноутбуке Toshiba Satellite A100.

Подключаемся к ноутбуку по sshfs (мне показалось так проще будет).
Устанавливается он просто:

sudo apt-get install sshfs 

и наконец:

sudo echo 'ROOT_PASSWORD' | sshfs root@192.168.1.1:/usr/storage/primary/webcam /home/pi/webcam -o password_stdin 

Я не стал мучиться каждый раз вводить пароль и забил эту команду в crontab при перезагрузке. Теперь все картинки с штампом времени в имени файла складируются на ноутбуке, где по крону в 8 утра запускается команда:

mv -a /usr/storage/primary/webcam/. /home/note/webcam 

Далее переименовываем все фото по одному шаблону, чтобы их aconv скушал:

ls *.jpg| awk 'BEGIN{ a=0 }{ printf "mv %s cap_%04d.jpg\n", $0, a++ }' | bash 

Склеиваем видео:

avconv -i cap_%04d.jpg -c:v libx264 -r 24 -crf 21 test.mkv 

Очищаем папку от фото. После этого видео заливаем вручную или автоматически на YouTube и накладываем музыку, чтобы не скучно смотреть было.

Сорри за видео со старой вебкамеры, так как аналоговую только вчера подключил и не успел всё донастроить и склеить видео.


Рабочий вид системы

Примечания

Цены на товары из Китая приведены с сайта Aliexpress в момент покупки.
Raspberry Pi запитан от PowerBank, который подключен к зарядке, что позволяет системе автономно работать при пропадании питания до 4 часов. Правда питание на аналоговую камеру зарезервировано через ИБП.

Перечень ссылок

Скрипт загрузки видео на Youtube
Установка драйверов на wi-fi Ralink
Подключение к wi-fi сети
Монтирование удаленной папки
О FSwebcam
Почему нужно покупать EasyCap именно на чипсете STK1160

У меня всё. Буду рад если кому то будет полезно и интересно.

ссылка на оригинал статьи http://habrahabr.ru/post/200934/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *