Pull to refresh

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

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

Начитавшись на Хабре о 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

У меня всё. Буду рад если кому то будет полезно и интересно.
Tags:
Hubs:
Total votes 24: ↑23 and ↓1+22
Comments12

Articles