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


Тематические термины: Linux, Ubuntu, RTSP.
В двух словах, сервер Motion позволяет записывать видео с IP-камер и предоставить доступ его просмотру посредством веб-интерфейса.
Установка и запуск
Motion в Ubuntu устанавливается из репозитория:
apt-get install motion
Создаем каталог и файл для логов motion:
mkdir /var/log/motion
touch /var/log/motion/motion.log
Редактируем владельца для лог-файла:
chown motion:motion /var/log/motion/motion.log
Открываем файл:
vi /etc/default/motion
В нем либо не должно быть параметра start_motion_daemon, либо он должен иметь значение:
start_motion_daemon=yes
Разрешаем автоматический запуск демона и перезапускаем сервис:
systemctl enable motion
systemctl restart motion
Можно проверить, что сервис работает корректно:
systemctl status motion
Настройка веб-интерфейса
По умолчанию, веб-интерфейс motion запускается на адресе localhost, что означает, что он будет доступен только с локального компьютера, что не совсем удобно для сервера.
Открываем конфигурационный файл:
vi /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).
Добавление камер
Добавим несколько камер. Для этого сначала открываем конфигурационный файл:
vi /etc/motion/motion.conf
Добавляем строки с описаниями камер (для каждой камеры свой файл с настройками):
camera /etc/motion/camera1.conf
camera /etc/motion/camera2.conf
* до версии 3.4.1 вместо camera используется thread.
Теперь создаем данные файлы:
vi /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.
... и для второй камеры:
vi /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