Как установить Motion на Ubuntu

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

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

Motion в Ubuntu устанавливается из репозитория:

apt-get install motion mc

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

mkdir /var/log/motion

touch /var/log/motion/motion.log

Редактируем владельца для лог-файла:

chown motion:motion /var/log/motion/motion.log

Открываем файл:

mcedit /etc/default/motion

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

start_motion_daemon=yes

Разрешаем автоматический запуск демона и перезапускаем сервис:

systemctl enable motion

systemctl restart motion

Можно проверить, что сервис работает корректно:

systemctl status motion

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

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

Открываем конфигурационный файл:

mcedit /etc/motion/motion.conf

Редактируем следующие строки:

webcontrol_localhost off

stream_localhost off

Перезапускаем демона:

systemctl restart motion

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

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

Добавим несколько камер. Для этого сначала открываем конфигурационный файл:

mcedit /etc/motion/motion.conf

Добавляем строки с описаниями камер (для каждой камеры свой файл с настройками):

camera /etc/motion/camera1.conf

camera /etc/motion/camera2.conf

* до версии 3.4.1 вместо camera используется thread.

Теперь создаем данные файлы:

mcedit /etc/motion/camera1.conf

Задаем настройки:

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.

… и для второй камеры:

mcedit /etc/motion/camera2.conf

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.

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

mkdir -p /video/motion/cam{1,2}

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

chown motion:motion /video/motion/cam{1,2}

Перезапускаем motion:

systemctl restart motion