Вы просматриваете: Главная > С просторов паутины > Видеорегистрация + видеонаблюдение для дома в Linux

Видеорегистрация + видеонаблюдение для дома в Linux

Собираю информацию о самодельном бюджетном домашнем видеонаблюдении

Надумал и я побаловаться созданием простой и дешевой домашней системы видеонаблюдения и видеорегистрации (сподвигла меня на это статья из журнала «Хакер»). Естественно, что идея использовать веб-камеру и домашний компьютер в данном случае выглядит наиболее привлекательной.

Веб-камера для Linux
Свой выбор веб-камеры для Linux я остановил на Logitech Webcam C120 по ряду причин: во-первых, она отличается приемлемым качеством картинка (изображение с камер Genius аналогичного ценового диапазона меня не впечатлило совсем), во-вторых — камера работает по протоколу UVC, что означает её поддержку ядром Linux «из коробки» (штатно поддержка добавлена в ядро Linux с версии 2.6.26, также в Linux заработают веб-камеры, управляемые драйвером GSPCA) и в-третьих — эта веб-камера стоит всего 500 рублей и её мне не жалко разобрать с целью создания из неё ИК-камеры (камеры «ночного видения»).

Процесс создания системы домашнего видеонаблюдения под Linux по шагам.
Подключаем камеру. В моём случае всё заводится самостоятельно (потому и выбрал данную камеру). Если камера подключена, а картинки нет — стоит проверить, добавлен ли текущий пользователь в группу video и при необходимости добавить его туда.
Кстати, проверить работоспособность камеры поможет обыкновенный mplayer, достаточно лишь запустить его следующим образом:

mplayer -cache 128 -tv driver=v4l2:width=640:height=480:device=/dev/video0 -vo xv tv://

Если что-то пошло не так — внимательно читаем лог ошибок. Например может понадобиться указать другое устройство вывода (-vo x11) — они перечислены по вызову mplayer -vo help

Использование программы Motion для организации видеонаблюдения

В качестве ПО для системы домашнего видеонаблюдения я выбрал программуMotion (присутствует в репозитории Debian, для работы требуется ffmpeg). Можно попробовать её аналоги, например ZoneMinder или AVReg, но поскольку Motion меня полностью устроила и именно она идёт первой в списках многих обзоров подобного софта — я заниматься тестированием не стал и просто использовал её.

Итак, что же может предложить Motion желающим собрать систему видеонаблюдения дома:

  • Поддержка работы с несколькими камерами (я рассмотрю вариант с одной камерой, поддержка дополнительных камер подключается в основаном конфиге, а их настройки описываются в отдельных файлах).

  • Непрерывная трансляция изображения с веб-камеры с сохранинием транслируемго потока на носитель (поддерживаются различные форматы сохранения потока) — иными словами, это ни что иное, как постоянная видеорегистрация.

  • Отслеживание наличия изменений на изображении, получаемом с камеры, и включение записи в случае обнаружения таких изменений — программа реагирует на движение и начинает запись только в этом случае (подробнее о настройках детекции движения расскажу ниже).

  • Трансляция изображения с камеры в сеть посредством собственного небольшого HTTP-сервера (просмтор возможен как с локальной, так и с удалённой машины).

  • Выполнение произвольного скрипта в при заданном условии (например при обноружении движения можно запускать скрипт оповещения по почте/смс/телефону или проигрывать трубный звук и т.п.).

Работает Motion в режиме демона и настраивается при помощи правки конфигурационного файла, расположенного по адресу/etc/motion/motion.conf и весьма подробно откомментированного на простом английском.
Перед изменением рекомендую скопировать конфигурационный файл в свою домашнюю директорию и в дальнейшем работать с этой копией, если ваши задачи не требуют иного:

mkdir ~/.motion
sudo cp /etc/motion/motion.conf ~/.motion/
sudo chown user:group ~/.motion/motion.conf

Настройка Motion — правим motion.conf

Остановлюсь подробней на некоторых настройках, которые, на мой взгляд, могут потребовать правки:

  • Запуск в режиме демона# Start in daemon (background) mode and release terminal (default: off)daemon on

  • Устройство для захвата видео — если камера одна — оставить как есть, иначе изменить на video1…videoN по необходимости# Videodevice to be used for capturing (default /dev/video0)# for FreeBSD default is /dev/bktr0videodevice /dev/video0

  • Какой вход для видео использовать. В случае USB-камеры оставить как есть.# The video input to be used (default: 8 )# Should normally be set to 0 or 1 for video/TV cards, and 8 for USB camerasinput 8

  • Разрешение видео, выдаваемое камерой — отредактировать в соответствии с характеристиками своей камеры# Image width (pixels). Valid range: Camera dependent, default: 352width 640# Image height (pixels). Valid range: Camera dependent, default: 288height 480

  • Число кадров в секунду — опять же в соответствии с характеристиками камеры (к примеру некоторые камеры позволяют снимать с бОльшим разрешением, но меньшей частотой кадров или наоборот). Для PAL стандартное значение — 25 кадров/сек.# Maximum number of frames to be captured per second.# Valid range: 2-100. Default: 100 (almost no limit).framerate 30

  • После какого количества секунд отсутствия движения будет перезапущена запись (а файл перезаписан).gap 60

  • Ограничение размера файла с записью (в секундах). В случае ненулевого значения после превышения лимита будет создаваться новый файл.# Maximum length in seconds of an mpeg movie# When value is exceeded a new mpeg file is created. (Default: 0 = infinite)max_mpeg_time 0

  • Сколько времени (в секундах) вести запись в один файл. После превышения предела создаётся новый файл.# The file rollover mode of the timelapse video# Valid values: hourly (ежечасно), daily (ежедневно, default), weekly-sunday (еженедельно, начало недели в Вс), weekly-monday (аналогично с началом в Пн), monthly (ежемесячно), manual (вручную).ffmpeg_timelapse_mode hourly

  • Варианты сохранения скриншота с движением — все подряд (on), ни одного (off), первый (first), лучший (best) или с движением ближе к центру изображения (center).output_normal best

  • Сохранение потока с камеры как видеофайла.# Use ffmpeg to encode mpeg movies in realtime (default: off)ffmpeg_cap_new on

  • Выбор кодека, которым будет обработан сохраняемый видеопоток (поддерживаемые кодеки подробно перечислены в конфиге). Выбранный кодек должен быть установлен в системе, иначе при запуске Motion будет выдавать ошибку.ffmpeg_video_codec mpeg4

  • Путь к каталогу, в котором будет храниться отснятый материал.target_dir /home/user/camera_video

  • Номер порта, на котором будет работать встроенный http-сервер Motion — при необходимости прописать любой свободный порт.# The mini-http server listens to this port for requests (default: 0 = disabled)webcam_port 8081

  • Процент качества для сжимаемых в jpeg изображений с камеры, которые будут выводиться в браузер.# Quality of the jpeg images produced (default: 50)webcam_quality 90

  • Частота обновления видео в браузере (кадров в секунду) в случае отсутствия зарегистрированного движения — если не планируется просматривать изображение с камеры периодически, то можно отключить. При обнаружении движения частота обновления станет равной параметру webcam_maxrate.# Output frames at 1 fps when no motion is detected and increase to the# rate given by webcam_maxrate when motion is detected (default: off)webcam_motion 2

  • Частота обновления видео в браузере в случае регистрации движения программой.# Maximum framerate for webcam streams (default: 1)webcam_maxrate 10

  • Разрешить (off) или запретить (on) доступ к просмотру камеры с удаленных машин.# Restrict webcam connections to localhost only (default: on)webcam_localhost on

Остальные настройки стоит менять при необходимости (весьма подробно настройки Motion описаны в статье, ссылка на которую дана в начале заметки), приведенного выше на мой взгляд достаточно для нормальной работы с Motion. Первый запуск можно осуществить с ключом -n, чтобы программа не переходила в режим демона — это позволит получить диагностические сообщения прямо в консоль.

Для проверки работы программы можно зайти веб-браузером на адресhttp://localhost:8081 и полюбоваться на результат своих трудов :) Также нужно отметить, что веб-интерфейс позволяет производить настройку Motion (удобно при нескольких камерах), для чего нужно внести соответствующие изменения в секцию HTTP Based Control конфигурационного файла программы.

«Пример конфига автора»

«Источник»

Метки: , ,


Оставить отзыв