Установка Motion на Linux Ubuntu
В двух словах, сервер Motion позволяет записывать видео с IP-камер и предоставить доступ его просмотру посредством веб-интерфейса.
Установка и запуск
Motion в Ubuntu устанавливается из репозитория:
apt-get install motion
Создаем каталог и файл для логов motion:
Редактируем владельца для лог-файла:
chown motion:motion /var/log/motion/motion.log
В нем либо не должно быть параметра start_motion_daemon, либо он должен иметь значение:
Разрешаем автоматический запуск демона и перезапускаем сервис:
systemctl enable motion
systemctl restart motion
Можно проверить, что сервис работает корректно:
systemctl status motion
Настройка веб-интерфейса
По умолчанию, веб-интерфейс motion запускается на адресе localhost, что означает, что он будет доступен только с локального компьютера, что не совсем удобно для сервера.
Открываем конфигурационный файл:
Редактируем следующие строки:
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).
Добавление камер
Добавим несколько камер. Для этого сначала открываем конфигурационный файл:
Добавляем строки с описаниями камер (для каждой камеры свой файл с настройками):
camera /etc/motion/camera1.conf
camera /etc/motion/camera2.conf
* до версии 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.
Источник
Motion — программа видеонаблюдения для Linux, скачать, мануал по настройке
Motion — программа видеонаблюдения для Linux, скачать, мануал по настройке
По мере развития технологий, практически во всех сферах жизни активно используются цифровые технологии. Это касается и служб безопасности использующие системы видеонаблюдения. К сожалению, большинство программного обеспечения для них заточено под Windows. Но мы то живем в Linux, а значит нужно найти способ запустить видеонаблюдение под пингвином.
Порывшись в сети я нашел рецепт, предложенный пользователем Linux_man. Он использует для настройки видеонаблюдения программу Motion установленную в дистрибутиве openSUSE 11.4. Ниже я привожу сам рецепт с дополнениями пользователей, уже протестировавших этот рецепт.
Если у вас уже есть рабочая в Linux web-камера, качаем программу Motion. Для пользователей openSUSE x86_64, качаем с href=»ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/poeml/openSUSE_Factory/x86_64/, а для x86_32 с ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/poeml/openSUSE_Factory/i586/.
Теперь для установки потребуется удовлетворить зависимось под названием libmysqlclient15, скачать которую, как для x86_32, так и для x86_64, вы сможете с href=»http://download.opensuse.org/repositories/home:/Floppe/openSUSE_11.4. Также убедитесь, что у вас установлен ffmpeg.
Для пользователей Ubuntu, скачать и установить Motion можете так:
Теперь как все установили, идем в терминал и переключаемся на root. Данная программма работает только с правами root.
Далее вводим команду:
для запуска ее и она будет работает в background режиме, — gui у нее нету. Автор рецепта не нашел как ее отключать и решал проблему ребутом. Но добрые люди , подсказали, что, в /etc/default/motion можно поставить значение on в пункте о демоне и выключать, ребутить, стартовать по sudo /etc/init.d/motion start|stop|restart
Когда Motion запущен и работает ваша камера, которая и отслеживает движения в кадре и записывает .jpeg фотографии в:
/usr/local/apache2/htdocs/cam1
Также имеется файл config, для настройки Motion. Лежит он тут:
Там можно настроить все.
Также присутствует и веб-интерфейс для ослеживания камеры — пишите в браузере: http://localhost:8081/
Но честно говоря, лучше сначала немного настроить ее под себя. Конфигурационный файл хранится в /etc/motion (лучше его скопировать в домашний каталог пользователя, указать путь к конфгу можно опцией -c). Отредактируем его vim /etc/motion/motion.conf
Этот файл хорошо откоменирован, и если у вас нет проблем с английским, то понять смысл опций для сам не составит труда.
Первая опция:
daemon (on/off) — будет ли motion запускаться в режиме демона(в фоне). Можно указать также опцию -n при запуске, тогда программа будет запущена в обычном режиме.
Далее:
videodevice /dev/video0 — указываем наше видео устройство. У меня это /dev/video0.
rotate (0,90,180,270) — повернуть изображение на заданное количество градусов(если камера прикреплена под углом)
width 320
height 240
— ширина и высота картинки в пикселях, соответственно
framerate (2-100) — количество кадров, захватываемых в секунду. Естественно, чем больше значение, тем больше потребление ресурсов компьютера. Выбирайте оптимальное значение.
minimum_frame_time 0 — вдогонку предыдущей опции — позволяет задать минимальное время между захватом двух кадров. Можно, например сделать захват кадра каждый 5 сек.
netcam_url value — используйте, если доступ к вашей камере осуществляется посредством сети. вместо value укажите путь до видеопотока. По умолчанию эта опция не используется
auto_brightness off
brightness 0
contrast 0
saturation 0
hue 0
— яркость, контраст, насыщенность и т.п.
Следующая важная для нас секция:
# Motion Detection Settings:
threshold 1500 — можно охарактеризовать как чувствительность для определения движения. Чем меньше значение, тем чувствительнее детектор.
noise_level 32 — уровень шума. Позволяет игнорировать шум, создаваемый камерой. Установите оптимально значение для вашей камеры.
area_detect (1-9) Позволяет следит только за определенной областью. 1 — левый верхний угол, 2 — верхняя средняя часть,… 5 — центр,… 9 — правый нижний угол.
mask_file value — Указываете путь до pgm файла с маской движения, которое не нужно фиксировать. Позволяет игнорировать качание ветвей деревьев и пр. Подробнее о файлах pgm здесь netpbm.sourceforge.net/doc/pgm.html
Далее идут еще несколько опций по определению движеия и опции кодирования изображения и видео. Их описание я опущу.
snapshot_interval N — Создает снимки каждые N секунд.
locate (on/off) — рисовать рамку вокруг движущегося объекта.
target_dir /usr/local/apache2/htdocs/cam — Папка, куда будут сохраняться изображения. Я установил это значение
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S
— Настраиваем имена файлов.
on_event_start value
on_event_end value
on_picture_save value
on_motion_detected value
on_area_detected value
on_movie_start value
on_movie_end value
on_camera_lost value
— Выполняет определенное действие по наступлении определенных событий. В качестве value можно указать скрипт, например, оправляющий вам сообщение. Или например включать музыку при обнаружении кого-либо. Все ограничивается вашей фантазией и зависит от вашей цели.
Теперь можно запускать
motion
Теперь при обнаружении активности в наблюдаемой области программа сохраняет снимки в указанную директорию и выполняет ваш скрипт (о написании скриптов по отправке сообщений есть множество статей, поэтому не стану освещать эту тему в этой статье).
При обнаружения движения motion в режиме non-daemon выводит строчки вида [1] File of type 1 saved to: /home/vladimir/motionshots/01-20110727140020-00.jpg
Источник
Создаем систему видеонаблюдения с помощью motion
В этой статье я хочу рассказать о настройке и использовании домашней системы слежения. Вы сможете сделать за любой территорией, попадающей в поле зрения вышей веб-камеры, отправлять себе сообщение при обнаружении активности в этой области, делать снимки, транслировать изображение по сети (можно прикрутить авторизацию для доступа видео с вашей веб-камеры и смотреть удаленно, если у вас есть статический ip) вообще что захотите — полный контроль и свобода выбора, что в общем характерно для ос gnu/linux и подобных (в дальнейшем речь пойдет именно о linux).
Итак, представляю вашему вниманию замечательную утилиту — Motion, распространяющуюся по лицензии GPL. Скорее всего она уже есть в репозитории вашего дистрибутива, если нет (хотя я сомневаюсь в этом) — можно скачать deb, rpm или исходный код со страницы закачки на офф сайте. Я воспользовался средствами своего пакетного менеджера.
Можно запускать, но лучше сначала немного настроить ее под себя. Конфигурационный файл хранится в /etc/motion (лучше его скопировать в домашний каталог пользователя, указать путь к конфгу можно опцией -c). Отредактируем его vim /etc/motion/motion.conf
Этот файл хорошо откоменирован, и если у вас нет проблем с английским, то понять смысл опций для сам не составит труда.
Первая опция:
daemon (on/off) — будет ли motion запускаться в режиме демона(в фоне). Можно указать также опцию -n при запуске, тогда программа будет запущена в обычном режиме.
Далее:
videodevice /dev/video0 — указываем наше видео устройство. У меня это /dev/video0.
rotate (0,90,180,270) — повернуть изображение на заданное количество градусов(если камера прикреплена под углом)
width 320
height 240
— ширина и высота картинки в пикселях, соответственно
framerate (2-100) — количество кадров, захватываемых в секунду. Естественно, чем больше значение, тем больше потребление ресурсов компьютера. Выбирайте оптимальное значение.
minimum_frame_time 0 — вдогонку предыдущей опции — позволяет задать минимальное время между захватом двух кадров. Можно, например сделать захват кадра каждый 5 сек.
netcam_url value — используйте, если доступ к вашей камере осуществляется посредством сети. вместо value укажите путь до видеопотока. По умолчанию эта опция не используется
auto_brightness off
brightness 0
contrast 0
saturation 0
hue 0
— яркость, контраст, насыщенность и т.п.
Следующая важная для нас секция:
# Motion Detection Settings:
threshold 1500 — можно охарактеризовать как чувствительность для определения движения. Чем меньше значение, тем чувствительнее детектор.
noise_level 32 — уровень шума. Позволяет игнорировать шум, создаваемый камерой. Установите оптимально значение для вашей камеры.
area_detect (1-9) Позволяет следит только за определенной областью. 1 — левый верхний угол, 2 — верхняя средняя часть,… 5 — центр,… 9 — правый нижний угол.
mask_file value — Указываете путь до pgm файла с маской движения, которое не нужно фиксировать. Позволяет игнорировать качание ветвей деревьев и пр. Подробнее о файлах pgm здесь netpbm.sourceforge.net/doc/pgm.html
Далее идут еще несколько опций по определению движеия и опции кодирования изображения и видео. Их описание я опущу.
snapshot_interval N — Создает снимки каждые N секунд.
locate (on/off) — рисовать рамку вокруг движущегося объекта.
target_dir /usr/local/apache2/htdocs/cam — Папка, куда будут сохраняться изображения. Я установил это значение
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S
— Настраиваем имена файлов.
on_event_start value
on_event_end value
on_picture_save value
on_motion_detected value
on_area_detected value
on_movie_start value
on_movie_end value
on_camera_lost value
— Выполняет определенное действие по наступлении определенных событий. В качестве value можно указать скрипт, например, оправляющий вам сообщение. Или например включать музыку при обнаружении кого-либо. Все ограничивается вашей фантазией и зависит от вашей цели.
Теперь можно запускать
motion [-c /путь/до/конфига] . Можно также добавить в список демонов вашей системы( rc-update add motion default для гетнты, для арча — добавить в DAEMONS=() в /etc/rc.conf, для других дистрибутивов точно не знаю, но это не сложнее)
Теперь при обнаружении активности в наблюдаемой области программа сохраняет снимки в указанную директорию и выполняет ваш скрипт (о написании скриптов по отправке сообщений есть множество статей, поэтому не стану освещать эту тему в этой статье).
И напоследок несколько скриншотов с примером использования. Как видно, при обнаружения движения motion в режиме non-daemon выводит строчки вида [1] File of type 1 saved to: /home/vladimir/motionshots/01-20110727140020-00.jpg
UPD: Благодарю за инвайт! Топик перенес в Linux для всех
Источник