Как настроить веб-камеру с детектором движения в Ubuntu

Motion — полезный инструмент, который может превратить вашу обычную веб-камеру в камеру наблюдения. Он делает это, отслеживая сигнал от вашей веб-камеры и делая скриншоты и видео, когда обнаруживает движение. Здесь мы покажем вам, как установить Motion и настроить веб-камеру с детектором движения в Ubuntu Linux.
Содержание
- Установка сервера Motion
- Настройка Motion для вашей системы
- Изменение места сохранения по умолчанию
- Настройка параметров обнаружения в Motion
- Включение веб-интерфейса Motion
- Удаленное управление сохраненными захватами
- Запуск и тестирование сервера Motion
Установка сервера Motion
Motion включен по умолчанию в официальном репозитории Ubuntu. Это означает, что вы можете установить эту программу через ваш менеджер пакетов apt:
sudo apt install motion v4l-utilsПримечание: Хотя в этой статье мы рассматриваем Ubuntu, Motion будет работать и для большинства дистрибутивов Linux.
Подтвердите, что ваш сервер Motion работает правильно, открыв справочное окно программы:
motion -hНастройка Motion для вашей системы
Прежде чем мы начнем настраивать Motion, нам нужно скопировать файл конфигурации в нашу домашнюю папку, чтобы у нас была чистая резервная копия оригинала. Откройте терминал и скопируйте файл конфигурации в вашу домашнюю папку:
cp/etc/motion/motion.conf ~/motion.conf.backupОткройте оригинальный файл конфигурации с помощью вашего любимого текстового редактора:
sudonano/etc/motion/motion.confОдно из самых простых изменений, которые вы можете сделать для вашего сервера Motion, — это изменить качество его изображения и видео. По умолчанию сервер устанавливает разрешение на 640×480, что может быть слишком маленьким для современных веб-камер.
Чтобы изменить это, выполните следующую команду в новом сеансе терминала, чтобы проверить доступные разрешения для вашей камеры:
sudo v4l2-ctl -d/dev/video0 --list-formats-ext
Вернитесь к вашему конфигу Motion, прокрутите вниз до категории “Обработка изображений”, затем найдите переменные width и height.

Укажите соответствующие значения для разрешения, которое вы хотите. В моем случае я хочу запустить Motion в 1280×720, поэтому я ввожу “1280” как ширину и “720” как высоту.

Установите значение framerate на частоту кадров, с которой вы хотите записывать ваши видео. По умолчанию это значение установлено на “15”, но вы можете уменьшить его, чтобы сэкономить место на диске.

Прокрутите вниз до категории “Вывод изображения”, затем установите значение переменной picture_output на “on”. Это позволит Motion захватывать как изображения, так и видео с вашей веб-камеры.

Изменение места сохранения по умолчанию
Еще одно изменение, которое вы можете сделать для вашего сервера Motion, — это изменить место, где он сохраняет свои данные. Это может быть полезно, если вы хотите экспортировать ваши захваченные видео и изображения в смонтированную удаленную директорию или облачное хранилище, такое как Dropbox.
Для начала перейдите в директорию, в которой вы хотите сохранить ваши данные, или создайте ее:
sudomkdir/motion/dataУстановите владельца вашей директории на “motion:adm”:
sudochown-R motion:adm /motion/dataУбедитесь, что весь путь к вашей директории доступен для чтения всеми пользователями:
sudochmod-R755/motion/dataВернитесь к вашему конфигу Motion, найдите переменную target_dir, затем установите ее значение на полный путь к вашей директории.

Настройка параметров обнаружения в Motion
Motion работает, сравнивая текущее видео с предыдущим. Если программа находит достаточную разницу между двумя изображениями, она классифицирует это как “движение” и записывает видео события.
В настоящее время Motion предполагает, что разница в 1500 пикселей достаточна для классификации как “движение”. Хотя это упрощает обнаружение движения для большинства веб-камер, для камер с более высоким разрешением это может быть слишком чувствительно.
Чтобы уменьшить это, перейдите в категорию “Обнаружение движения”, затем увеличьте значение переменной threshold. Я считаю, что 5500 пикселей достаточно, чтобы предотвратить запись Motion ненужных мелких движений с веб-камеры.

Вы также можете добавить переменную threshold_maximum, чтобы установить предел на разницу, которую Motion считает “движением”. Это полезно, если ваша веб-камера смотрит на загруженную область, и вы хотите, чтобы она работала только при меньшей активности.
Если вы не уверены в значениях threshold и threshold_maximum для вашей веб-камеры, вы можете позволить Motion настроить их за вас. Для этого добавьте переменную threshold_tune и установите ее значение на “on”.

Наконец, вы можете настроить Motion на запись моментов до и после обнаружения движения. Для этого перейдите к переменным pre_capture и post_capture и установите их значения на количество дополнительных кадров, которые вы хотите сохранить.

Включение веб-интерфейса Motion
Сервер Motion поставляется с веб-интерфейсом, который позволяет вам удаленно контролировать вашу веб-камеру. Чтобы включить это, перейдите в раздел “Webcontrol” конфигурации, затем установите значение переменной webcontrol_localhost на “off”.
Прокрутите вниз до раздела “Прямой поток”, затем установите значение stream_localhost на “off”.

Примечание: Motion не имеет никаких проверок аутентификации для своего веб-интерфейса. Таким образом, любой, кто знает адрес вашего сервера Motion, может просматривать вашу веб-камеру и управлять службой.
Удаленное управление сохраненными захватами
Как я уже упоминал ранее, лучший способ — сохранить изображения в вашей папке Dropbox, чтобы вы могли получить к ним доступ в любом месте. Однако, если вы предпочитаете, чтобы изображения загружались на ваш собственный файловый сервер (через FTP), вы можете использовать команду wput для загрузки изображений:
sudo apt install wputОткройте конфигурацию вашего сервера Motion, затем вставьте следующие строки кода в конец файла:
on_picture_save wput ftp://YOUR-USERNAME:YOUR-PASSWORD@YOUR-SERVER-ADDRESS %f
on_movie_end wput ftp://YOUR-USERNAME:YOUR-PASSWORD@YOUR-SERVER-ADDRESS %f
Запуск и тестирование сервера Motion
Убедитесь, что вы сохранили файл конфигурации Motion, затем выполните следующую команду, чтобы запустить сервер:
sudo systemctl enable--now motion.serviceПодтвердите, что сервер работает правильно, открыв веб-браузер и перейдя по IP-адресу вашего компьютера, добавив “8080”.

Это откроет веб-страницу, показывающую текущий видеопоток с вашей веб-камеры вместе с меню, содержащим дополнительные действия для вашего сервера. Например, вы можете нажать Action -> Snapshot, чтобы захватить неподвижное изображение с вашей веб-камеры.

Проверьте, обнаруживает ли Motion и записывает ли движение с вашей веб-камеры, пройдя объектом перед вашей камерой и проверив содержимое вашей директории target_dir.

Также есть прямой поток, который вы можете открыть как в медиаплеере, так и в веб-браузере. Чтобы получить к нему доступ, перейдите по IP-адресу вашего компьютера, добавив “8081”.

Преобразование вашей обычной веб-камеры в систему обнаружения движения — это лишь одно из множества вещей, которые вы можете сделать с камерами в Linux. Узнайте больше о некоторых из лучших приложений для веб-камер для Linux, которые вы можете установить и попробовать уже сегодня.
Кредит изображения: Bermix Studio через Unsplash. Все изменения и скриншоты сделаны Рамсесом Редом.