Меню Рубрики

Linux motion web интерфейс

Установка 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.

Источник

Linux motion web интерфейс

После обновления видеосервера под debian, было принято решение переделать систему видеонаблюдения.

Motion было решено оставить, но возникла необходимость в более человеческом интерфейсе для просмотра архивных записей. Очередные поиски в Интернет так и не дали никаких приемлемых результатов, в результате чего было принято решение о создании собственного продукта. После небольших колебаний, выбор пал на Rails. Никакой религии, просто захотелось получше изучить этот фреймворк и замечательный язык программирования. В качестве СУБД используется PostgreSQL. Результат работы под капотом.

Для начала чуть-чуть поподробнее про настройку motion.

В связи с тем, что хотелось, по-возможности, обойтись чистым HTML5, пришлось переустановить motion вручную, включив ему поддержку записи файлов в ogg. Благо авторы данной программы реализовали ее, за что им большое спасибо. Процесс сборки и установки описан хорошо на странице проекта, поэтому не буду его здесь расписывать, тем более, что под разные дистрибутивы он будет отличаться. Ссылка на домашнюю страницу www.lavrsen.dk/foswiki/bin/view/Motion/MotionGuideInstallation.

Заострю внимание только на настройке продукта.

Так как изначально motion был установлен из пакетов, то после переустановки не стал переносить папку с конфигурацией из /etc в /usr/local/etc . И еще один пункт, сам motion запускается при помощи runit, поэтому в конфиге он отключен режим демона. Расстановка сил следующая:

  1. Конфиги motion лежат в /etc/motion.
  2. Видео пишется на отдельный жесткий диск, смонтированный в директорию /video, в папки с именами камер.
  3. В базу откладываются записи, в которых хранится информация о времени события, полному пути к файлу события, типом файла (в моем случае видео).

CREATE TABLE records
(
id serial NOT NULL,
thread integer,
filename character varying(255),
frame integer,
file_type integer,
event_timestamp timestamp without time zone,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL,
CONSTRAINT records_pkey PRIMARY KEY (id )
)
WITH (
OIDS=FALSE
);
ALTER TABLE records
OWNER TO motion;

CREATE INDEX thread
ON records
USING btree
(thread );

4. Для живого просмотра (в режиме реального времени) с камер использутеся интерфейс motion.

Основные изменения в конфиге следующие:

webcontrol_port 8080
webcontrol_localhost off (в том случае, если web-interface будет запускаться на другом сервере)
webcontrol_html_output on
webcontrol_authentication login:pass

sql_query insert into records(thread, filename, frame, file_type, event_timestamp, created_at, updated_at) values(‘%t’, ‘%f’, ‘%q’, ‘%n’, ‘%Y-%m-%d %T’, NOW(), NOW())

И соответственно настройки для подключения к БД.

Далее подключаем камеры

thread /etc/motion/thread2.conf

thread /etc/motion/threadN.conf,

где N зависит от количества наших камер.

Основные пункты в threadX.conf, где X — любое число

stream_port PortNumber — данный порт надо будет писать в поле «Порт потокового вещания» при настройке камер в web-interface. Это основные изменения при настройке motion. Как настроить сам motion в данной статье расписывать не буду. По настройке Rails хорошо расписано в статье habrahabr.ru/post/140910 . Также может возникнуть необходимость в установке NodeJS — github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

Теперь перейдем непосредственно к настройке интерфейса:

1. Клонировать при помощи git сайт.

git clone webdev4u@bitbucket.org/webdev4u/motion_web.git

git clone github.com/webdev4u/motion_web.git

2. Переименовать config/settings.local.yml в config/settings.yml и вписать туда адрес сервера, на котором запущен motion.

3. Переименовать config/database.yml.example в config/database.yml и вписать туда настройки для вашей базы.

4. Измените данные в db/seeds.rb для пользователя admin .

7. Для проверки можно будет запустить rails s . Сервер будет слушать на 3000 порту. Если все нормально, можно работать.

8. И напоследок, настроить задание для крона по чистке базы. По умолчанию хранятся записи за 21 день, но можно изменить этот параметр в файле app/models/record.rb 12 строка, но лучше в lib/tasks/crontask.rake строку

После чего прогнать команду

из под пользователя, от имени которого будет работать сайт.

Скриншот главной страницы:

Страница входа:

Просмотр архива:

Добавление пользователя:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Radiant dicom viewer mac os
  • Quite imposing plus mac os
  • Quik под mac os
  • Quik для mac os
  • Quik for mac os