Кратко: установка motionEye на Debian 10 в Docker
В данной статье я расскажу, что мне потребовалось для установки motionEye в Docker на Debian 10 c techwell-овской DVR pci картой (HW-108Q9). Это тот же самый старый сервер, на котором стоял ZM (описывал тут), но так как меня утомили баги ZM, было принято решение перейти на motionEye. Описывать сам интерфейс программы я не буду, а лишь покажу некоторые настройки, которые я сделал для работы с аналоговыми камерами.
motionEye это web-интерфейс для motion, написанный на Python. Сам интерфейс достаточно простой и удобный, а главное позволяет разворачивать системы наблюдения без каких либо проблем.
Но подробнее о его возможностях, плюсах и минусах я останавливаться не буду, так как это не тема этой статьи, скажу кратко: этот софт позволяет вести круглосуточное видеонаблюдение и сохранять записи без каких-либо проблем.
Что у нас есть?
У нас есть сервер, на Debian 10, в котором установлена старая pci-dvr карта HW-108Q9. Настраивать на этой версии драйвера для работы этой карты не пришлось, так как они уже есть в ядре, но если вдруг она у вас не работает, то в этой статье, в разделе «Подготовка DVR карты и установка необходимых пакетов» описано как заставить работать эту плату. Скажу сразу, что в CentOS это не взлетит.
Так же был подключен дополнительный 2TB диск, который был примонтирован к точке /var/lib/motioneye — место куда у нас будут складываться видеозаписи.
Установка Docker
Для того, чтобы не заморачиваться с установкой пакетов, motionEye было решено ставить на Docker, а для этого нужно поставить сам Docker:
apt update
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
apt update
apt-cache policy docker-ce
apt install docker-ce
После проделанных действий Docker будет установлен.
Установка motionEye
Неожиданно, но мы готовы к установке самого motionEye, и для этого необходимо создать/запустить контейнер со следующими параметрами:
docker run --name="motioneye" \
-p 80:80 \
--hostname="motioneye" \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/motioneye:/etc/motioneye \
-v /var/lib/motioneye:/var/lib/motioneye \
--device=/dev/video0 \
--device=/dev/video1 \
--device=/dev/video2 \
--device=/dev/video3 \
--restart="always" \
--detach=true \
ccrisan/motioneye:master-amd64
Опишу наиболее важные параметры:
- -p 80:80 — web интерфейс будет доступен на 80 порту;
- -v /etc/localtime:/etc/localtime:ro — берем часовой пояс из системы в контейнер;
- -v /etc/motioneye:/etc/motioneye — подключаем внешнюю директорию для конфиг-файлов motioneye;
- -v /var/lib/motioneye:/var/lib/motioneye — подключаем внешнюю директорию для хранения записей;
- —device=/dev/videoХ — для того, чтобы контейнер с motioneye видел наши видео-устройства (dvr карту), подключаем их.
Подробное описание установки motioneye есть на этой странице: https://github.com/ccrisan/motioneye/wiki/Install-In-Docker
После проделанной команды проверяем что motioneye запущен:
root@secursrv:/home/leo# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f255cded7308 ccrisan/motioneye:master-amd64 "/bin/sh -c 'test -e…" 14 seconds ago Up 14 seconds 0.0.0.0:80->80/tcp motioneye
Настройка motionEye
Далее, перейдя в браузере по адресу вашего сервера откроется web-интерфейс (для авторизации введите логин admin и оставьте пустой пароль):
Сам web-интерфейс с 5-ю настроенными камерами выглядит так:
Список видеозаписей выглядит так:
Ниже представлены скрины с базовой настройкой одной аналоговой камеры и некоторыми другими настройками.
Video Device
Это базовые настройки для аналоговой камеры:
Если камера подключена к определенному каналу, то настройка будет немного другой (в Extra Motion Options добавлен input 0):
File Storage
В данном разделе указаны базовые настройки хранения файлов (в моем случае там все по умолчанию):
Кстати там есть возможность автоматически загружать файлы по FTP, SFTP, Google Drive/Photo, DropBox.
Text Overlay
Тут можно произвести настройку наложения текста:
Movies
В этом разделе можно настроить параметры сохраняемых файлов (имя файла, формат, качество, режим записи, максимальная длина ролика, срок хранения записей:
Motion Detection
В данном разделе можно произвести тонкую настройку режима «motion detect»:
Проблемы эксплуатации
Вот проблемы с которыми я столкнулся (и, пока, смирился):
- Нет нормального поиска (поисковой строки, с помощью которой можно отобразить записи со всех камер за определенный промежуток времени
- Если у вас много записей, то список с ними будет открываться достаточно долго. Связанно это с тем что сам список генерируется чтением файлов с диска, естественно это происходит не быстро, при большом количестве записей
Итог
Я не стал подробно описывать все настройки данной системы, так как у проектов есть прекрасная документация, так что если вам что-то понадобится, то welcome:
- https://github.com/ccrisan/motioneye/wiki — документация motioneye
- https://motion-project.github.io/motion_guide.html — документация motion