Видеонаблюдение в Linux с использованием Motion и WEB камеры

Всем привет!
Сегодня займёмся настройкой видеонаблюдения.
Зачем это нужно? Да для чего угодно.
Лично мне лень вставать из-за пк, чтобы посмотреть кто-же там пришёл. Я просто открываю браузер и смотрю.
Да и в добавок жуть как интересно, что-же там (в подъезде) происходит когда тебя нет, кто же всё-таки загадил весь подъезд.

Последнее, что меня окончательно надоумило ставить видеонаблюдение, так это статья в журнале "Хакер", где как раз и рассказывалось про то, как и из чего можно организовать слежку.

Итак, первое что нужно сделать, так это выбрать WEB камеру, которая поддерживается LINUX.
Я смотрел на ЭТОЙ страничке. Ещё можно глянуть ТУТ.
Мой выбор пал на Logitech QuickCam Messenger

logitech_quickcam_messenger_black_oem__961608-0914

Как её настроить для Linux на примере Debian можно прочитать ТУТ
Поскольку у меня Gentoo, из этой статьи я сделал вывод, что мне нужно:
а) Модуль v4l
б) Драйвер gspca (В современных ядрах Linux >2.6.27 он уже включён в набор)

Я пересобрал моё ядро (2.6.23) с поддержкой v4l
Сам-же драйвер я качал с его Home Page
cd /tmp
wget http://mxhaard.free.fr/spca50x/Download/gspcav1-20071224.tar.gz
tar xvfz gspcav1-20071224.tar.gz
cd gspcav1-20071224
make
make install #При необходимости, я не делал
depmod -a
modprobe gspca

Вставляем камеру в USB порт, она должна включиться.
Проверяем, что ПК её видит и Linux её опознал:
#lsusb
Bus 005 Device 001: ID 1d6b:0001
Bus 004 Device 001: ID 1d6b:0001
Bus 003 Device 001: ID 1d6b:0001
Bus 002 Device 002: ID 046d:08da Logitech, Inc. QuickCam Messanger
Bus 002 Device 001: ID 1d6b:0001
Bus 001 Device 001: ID 1d6b:0002

#dmesg| grep Logitech
drivers/media/video/usbvideo/quickcam_messenger.c: Logitech Quickcam Messenger USB v0.01

И должно появиться устройство в папке /dev/video0
У меня оно почему-то появилось в /dev/v4l/video0, я просто сделал сим.линк в /dev/video0

Уф, с первой частью покончили. Переходим ко второй: Установке ПО.
В качестве ПО я выбрал motion
Программа Motion способна контролировать сигнал, полученный с одной или нескольких видеокамер, и обнаруживать наличие изменений на картинке. На выходе получаем фотки в форматах jpeg, ppm или mpeg видеопоток, который может транслироваться в сеть или записываться в файл. При необходимости на указанный почтовый адрес может быть отослано сообщение с информацией о событии. Возможно выполнение любой предусмотренной пользователем команды или скрипта, поэтому реакция системы зависит только от твоей фантазии. Например, в Сети я видел информацию, как заставить Asterisk звонить на мобилу при обнаружении движения. Как вариант, Motion может просто захватывать кадры с указанного устройства через определенные интервалы времени или по команде cron.

Motion написан на языке Си, изначально разрабатывался для Linux, но может работать и в FreeBSD и Mac OS X. Поддерживаются все типы популярных сегодня видеокамер, подключаемых к компьютеру через USB порт, Video4Linux устройства и сетевые камеры. Драйверов для видеокамер проект Motion не предоставляет, поэтому прежде чем начинать настройку, убедись, что твоя камера видна операционке.


Фактически вся рабочая система представлена демоном, который потребляет небольшое количество системных ресурсов. В текущей версии 3.2 убраны практически все параметры командной строки запуска, поэтому установки производятся исключительно путем правки конфигурационных файлов. Никаких супер-пупер удобных графических инструментов для этих целей не предусмотрено. Хотя Motion имеет встроенный http-сервер, предназначенный для просмотра захваченного видео и прямой правки параметров в конфиге

Источник

Иными словами, Мы получаем всю систему с http сервером из коробки и без лишнего гемороя.

Нам потребуется:
ffmpeg
motion с включённым v4l и ffmpeg
В Gentoo ставиться так:
USE="v4l ffmpeg" emerge motion

Притом, ffmpeg лучше взять тот, который рекомендуют разработчики. Ссылка.
C ffmpeg я напоролся на неприятность, дело в том что в Gentoo с Motion 3.2.11 (из репозитария) случилась беда.
Он падал при запуске с ошибкой сегментации.
Скачал Motion 3.2.10, но он почему-то не понимал что ffmpeg установлен.
В Gentoo ffmpeg лежит в /usr папке, путь указывается так: --with-ffmpeg=/usr
Тогда скачал последний Motion Daily Source Snap .
Он ffmpeg нашёл и начал работать, но видео не писал.
Запустил без режима демона "motion -n" и стал смотреть вывод.
Вылезла ошибка, что ffmpeg не может создать файл со словами: invalid argument.
Пришлось и ffmpeg ставить в отдельную папку и указывать её motion.
Напомню, как это делается:
sudo -i
cd /tmp
wget http://prdownloads.sourceforge.net/motion/ffmpeg-cvs-20060306-certified-with-motion-3.2.5.tar.gz
tar xvfz ffmpeg-cvs-20060306-certified-with-motion-3.2.5.tar.gz
cd ffmpeg
./configure --prefix=/usr/local/ffmpeg
make
make install
wget http://www.lavrsen.dk/sources/motion-daily//motion-daily-last.tar.gz
tar xvfz motion-daily-last.tar.gz
cd motion
./configure --prefix=/usr/local/motion --without-mysql --without-pgsql --with-ffmpeg=/usr/local/ffmpeg
make
make install

Т.е Мы собрали Motion без поддержки баз данных и установили в папку /usr/local/motion

Конфигурирование:
Переходим в папку /etc или /usr/local/motion/etc , и ищем там файл motion.conf или motion-dist.conf.
Если у Вас файл motion-dist.conf, то его следует переименовать в motion.conf
Сам-же файл очень подробно прокомментирован и описывать его не вижу смысла.
Лучше я Вам выложу свой рабочий конфиг для Motion 3.2.11.

Так же основные пункты перевидены в этой статье.
Далее запускаем motion -n или /usr/local/motion/bin/motion -n и смотрим вывод, если нет ошибок то всё ОК
Затем остаётся добавить motion в автозапуск и радоваться жизни.

Сокрытие и модификация камеры:
Следующий важный пункт это крепление камеры.
Я вырезал крепление из бутылки от шампуня, которую нашёл на улице и прикрутил выше двери.
Подставку пришлось сломать. Зелёный светодиод заклеил лейкопластырем.
фото:

[caption id="attachment_189" align="aligncenter" width="300" caption="Камера"]Камера[/caption]

Купил USB удлинитель на 5 метров + ~1 метр от камеры. Всё работает.
Теперь модификация:
Делаем камеру инфракрасной
Отличная статья как это сделать и зачем это нужно ТУТ

Коротко: Смысл в том, что нужно снять ИК-фильтр из объектива камеры.

Результат:
Лучше всяких слов скажет видео, снятое моей подъездной камерой:

http://www.youtube.com/watch?v=x0otGil03Fo


Остальное доступно тут: http://www.youtube.com/davnozdubv
blog comments powered by Disqus