Linux motion настройка камера

Linux motion настройка камера

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

И так начнём. Я использую систему на базе amd64, всё что представлено ниже действия которыми у меня получилось запустить камеры в motion.

Будем ставить систему с помощью которой можно отслеживать изменения попадающие в поле деятельности нашей камеры.

1) Для начала убедимся что в нашей системе появилось видеоустройство.
Убедимся что система видит нашу web-камеру
ls -l /dev/
crw-rw—- 1 root video 81, 0 Авг 22 20:08 video0

2) Убедимся что присутствует модуль v4l
keiz@ekzorchik:~$ lsmod | grep v4l
v4l1_compat 17284 2 uvcvideo,videodev
keiz@ekzorchik:~$

3) Проверим информация о модуле v4l1_compat (так для общих сведений)
keiz@ekzorchik:~$ sudo modinfo v4l1_compat
filename: /lib/modules/2.6.26-2-amd64/kernel/drivers/media/video/v4l1-compat.ko
license: GPL
description: v4l(1) compatibility layer for v4l2 drivers.
author: Bill Dirks
depends:
vermagic: 2.6.26-2-amd64 SMP mod_unload modversions
parm: debug:enable debug messages (int)

4) Задействуем установку и пакетов
sudo apt-get install motion
keiz@ekzorchik:~$ whereis motion
motion: /usr/bin/motion /etc/motion /usr/share/man/man1/motion.1.gz

5) Открываем наш конфигурационный файл
sudo nano /etc/motion/motion.conf

И начинаем:

  • Используем вход для видео, может иметь два значения:
    8 = (для USB камер), для v4l — ставим 1
    input = 8 (у меня Logitech C250)
  • Указываем каталог куда будут складываться захваченные с видеокамеры файлы
    target_dir /home/keiz/test_motion
  • Имя файла для снимков и видео, в примере оставляем значение по умолчанию# %Y = год, %m = месяц, %d = день, %H = час, %M = минута, %S = секундаsnapshot_filename %v-%Y%m%d%H%M%S-snapshotjpeg_filename %v-%Y%m%d%H%M%S-%q movie_filename %v-%Y%m%d%H%M%S timelapse_filename %Y%m%d-timelapse
  • Если используется карта видеозахвата или TV тюнер, при помощи параметра norm указываем стандарт. По умолчанию используется 0, то есть PAL. Возможны значения 1 — NTSC, 2 – SECAM и 3 PAL NC. Для TV тюнера также указываем частоту. По умолчанию frequency = 0.
  • Чтобы Motion не переходил в режим демона и выводил отладочную информацию в консоль, используем флаг ‘–n’.$ motion –n
  • В тестовом прогоне можно использовать sudo, а в повседневной жизни лучше разрешить запись в этот каталог членам группы (например, video) и себя, естественно, в нее включить.
  • В состав Motion включен мини http-сервер, который позволяет просматривать в реальном времени картинку с камеры в окне браузера
    webcam_port 0 -> т.е. htt-сервер отключен, чтобы он заработал нужно указать любой свободный порт(допустим 8081) webcam_localhost on -> определяет откуда на нашему http-серверу можно будет подключиться (только с локального компьютера) webcam_localhost off -> если планируется заходить по сети
  • webcam_quality 50 -> качество выводимых сервером jpeg изображений
    webcam_motion on -> укажем. чтобы картинка менялась постоянно с частотой 1 кадр, а при движении — с частотой, указанной в параметре webcam_maxrate
    webcam_limit 0 -> указывает максимальное количество изображений за соединение (по умолчанию 0, т.е. без ограничений)
  • control_authenticaton username:password -> ограничиваем доступ на сервер, указываем логин и пароль для аутентификации.Теперь, набрав в консоли «motion -n», среди строк вывода ты должен увидеть «motion-httpd: waiting for data on port TCP 8080». Набираем в браузере адрес и получаем возможность указывать настройки для каждой камеры (thread), выбирая их и вводя нужные значения. При работе с несколькими камерами такой способ тебе, вероятно, покажется более удобным.
  • rotate 0 -> снимать изображение в нормальном виде, без вращения (с помощью других параметров 90,180,270 можно вращать изображение) (Понадобиться если камеру расположили в перевернутом виде)
  • По умолчанию при обнаружении движения образуется не только видеофайл, но и последовательность изображений. Параметром output_normal можно изменить такое поведение. Так при установке в first будет сохранено только первое изображение, best – лучшее, а отключить эту функцию можно, использовав off. Активация output_motion разрешит сохранять в снимке только пиксели, показывающие движущийся объект.
  • в конфигурационном файле motion.conf функция записи захваченного видео отключена. Поэтому при необходимости измени значение ffmpeg_cap_new на on. Аналогично с output_motion, есть такой же параметр и для видео — ffmpeg_cap_motion, при активации которого в результирующий видеофайл будут сохранены пиксели, показывающие движущийся объект.
  • За качество результирующего видео отвечают два параметра: ffmpeg_bps или ffmpeg_variable_bitrate. При настройке следует использовать лишь один из них. Качество лучше подбирать экспериментальным путем, исходя из мощности системы и возможностей камеры. Кодек задается при помощи ffmpeg_video_codec, по умолчанию используется mpeg4, но при необходимости можно использовать: mpeg1, msmpeg4, swf, flv или ffv1.
  • (УДОБНАЯ ВЕЩЬ) В некоторых случаях полезной будет возможность периодической записи. Параметр ffmpeg_timelapse отвечает за период, в течение которого ведется запись информации в один видеофайл, затем будет создан новый. Возможные значения: daily (за день, по умолчанию), hourly, weekly-sunday, weekly-monday, monthly и manual. Например, чтобы запись на видео велась каждую секунду, устанавливаем «ffmpeg_timelapse 1». Если во время захвата с аналоговой камеры при перемещении объектов появляются искажения, установи ffmpeg_deinterlace в on.
  • В файл, кроме собственно объекта, за которым следит камера, заносится и дополнительная информация, позволяющая определить время съемки. Эти данные настраиваются в секции Snapshots. Например, установка цифры в snapshot_interval позволит делать снимки с указанным периодом вне зависимости от обнаружения движения. Активация locate выделит на снимке движущийся объект. Текст, выводимый в левом и правом углах снимка, указывается соответственно в text_left и text_right. В настройках по умолчанию выводится дата и время, когда сделан снимок (формат strftime(3)). Если камер несколько, для удобства можно активировать text_left, где прописать что-то вроде «Camera 1».
  • threshold позволяет указать количество пикселей, которые должны измениться для срабатывания детектора, а minimum_motion_frames — количество кадров, в котором они зафиксированы. Подобрав эти значения, можно сделать так, что Motion не будет замечать пролетающую птицу, но без проблем реагировать на человека. Фильтры для сглаживания шума подключаются при помощи despeckle. По умолчанию используется оптимальное значение EedDl. При появлении проблем следует поэкспериментировать, убирая буквы в сочетании EedDl и пробуя их в разных комбинациях.
  • Параметры noise_level, noise_tune, night_compensate и lightswitch отвечают за уровень порога шума и компенсацию темных и светлых участков.
  • Комбинация параметров pre_capture, post_capture и gap позволяет записать законченную сцену, где будет снят контролируемый объект до и после того, как было обнаружено движение. Значение gap по умолчанию установлено в оптимальные 60 (секунд), если движение не будет обнаружено, то создается новый видеофайл, а старый удаляется. Чтобы захваченный файл не был большим, его продолжительность можно ограничить параметром max_mpeg_time, указав в качестве значения время в секундах.
Читайте также:  Эмулятор терминала linux kde

Источник

Установка Motion на Linux Ubuntu

Обновлено

Обновлено: 16.08.2020 Опубликовано: 13.06.2019

Тематические термины: Linux, Ubuntu, RTSP. В двух словах, сервер Motion позволяет записывать видео с IP-камер и предоставить доступ его просмотру посредством веб-интерфейса.

Установка и запуск

В нем либо не должно быть параметра start_motion_daemon, либо он должен иметь значение:

Настройка веб-интерфейса

По умолчанию, веб-интерфейс motion запускается на адресе localhost, что означает, что он будет доступен только с локального компьютера, что не совсем удобно для сервера. Открываем конфигурационный файл:

Зайти на веб-интерфейс можно по адресу http://192.168.0.15:8080 для управления конфигурацией сервера, и http://192.168.0.15:8081 для подключения к трансляции в реальном времени (где 192.168.0.15 — адрес сервера с установленным motion).

Добавление камер

* до версии 3.4.1 вместо camera используется thread. Теперь создаем данные файлы:

width 1920
height 1080
framerate 20
netcam_url http://192.168.0.15/video
netcam_userpass login:password
text_left CAMERA 1\nStreet 1
target_dir /video/motion/cam1
threshold 2000
lightswitch_percent 60
minimum_motion_frames 5
event_gap 10
locate_motion_mode on
locate_motion_style redbox
text_changes on

* до версии 4.1.1 вместо lightswitch_percent используется lightswitch. . и для второй камеры:

width 1280
height 768
framerate 20
netcam_url rtsp://192.168.0.16:554/user=admin&password=&channel=1&stream=1.sdp
text_left CAMERA 2\nStreet 2
target_dir /video/motion/cam2
threshold 2000
lightswitch_percent 60
minimum_motion_frames 5
event_gap 10
locate_motion_mode on
locate_motion_style redbox
text_changes on
ffmpeg_timelapse 1

  • width — разрешение видео по горизонтали.
  • height — разрешение видео по вертикали.
  • framerate — число кадров в секунду.
  • netcam_url — ссылка на поток камеры.
  • netcam_userpass — логин и пароль для доступа к видеопотоку.
  • text_left — текст, который будет наложен слева снизу экрана.
  • target_dir — каталог для хранения записи с камеры.
  • threshold — число пикселей, которые должны измениться для срабатывания детектора движения.
  • lightswitch_percent — игнорировать резкие изменения интенсивности света.
  • minimum_motion_frames — количества кадров, в которых должно быть замечено движение, чтобы сработал детектор.
  • event_gap — количество секунд, по прошествии которых без движения отключать действие детектора.
  • locate_motion_mode — отрисовка рамки вокруг движущегося объекта.
  • locate_motion_style — стиль окна. Возможны значения box, redbox, cross, redcross.
  • text_changes — текст, отображающий измененные пиксели при движении.
  • ffmpeg_timelapse — как часто делать запись фрагмента в файл, если нет движения.

* первая камера настроена на запись при движении, видеопоток берем посредством http-запроса. Вторая — на запись при движении + посекундная постоянная запись, видеопоток забираем с использованием RTSP.

Создаем каталоги для видео файлов:

Читайте также:  Compiling with mingw linux

Задаем владельца для созданных каталогов:

chown motion:motion /video/motion/cam

Источник

Оцените статью
Adblock
detector