Видеонаблюдение под Linux

avreg-mon - локальный просмотрщик камер в реальном времени.

Настройка.

Конфигурационный файл.

Основные параметры интерфейса, такие как, например, размеры окна, определяются в едином конфигурационном файле «/etc/avreg/avreg.conf» в секции «avreg-mon {}»

Параметры конфигурационного файла avreg.conf, используемые avreg-mon

...
# Имя хоста SQL-сервера и имя базы данных.
# По умолчанию:
; db-host = 'пусто'
; db-name = 'avreg5_db'
...
avreg-mon {
   ### настройки локального просмотрщика камер в реальном времени ###
   ### версия 5.4.4 ###
   
   # Устанавливайте имя "db-user" и пароль "db-passwd" доступа к базе данных
   # в приватном ( 0640 root:video ) файле c именем "avreg-mon.secret" 
   include /etc/avreg/avreg-mon.secret

   # Использовать раскладки для левого(L) или правого(R) дисплея 
   # на двух-мониторных системах.По умолчанию: "L" (левый или единственный).
   ; display = R

   # После запуска переключиться на раскладку с номером layout 
   # Cм. настройку раскладок в веб-интерфейсе. По умолчанию: 0.
   ; layout = 1

   # Использовать окно с разрешением ШИРИНАxВЫСОТА пикселей.
   # По умолчанию: 648x488
   ; geo = 800x600
   
   # Использовать весь экран. По умолчанию: no
   ; fullscreen = yes

   # Cоздать окно без заголовка (title bar) и рамок (frame), если такое возможно.
   # Установка fullscreen в "yes" автоматически включает этот флаг.По умолчанию: no 
   ; no-winframe = yes

   # Не пытаться сохранять пропорции (соотношение сторон видеокадра или aspect ratio)
   # видео с камер, просто использовать всё доступное пространство окна программы.
   # Такой режим может приводить к увеличению нагрузки на систему и небольшим 
   # искажениям. По умолчанию: no, использовать для всех камер соотношение строн 
   # как у камеры в главном окне раскладки.
   ; fit2screen = yes
   
   # Сохранять огигинальные пропорции для всех камер. Не действует если установлено
   # "fit2screen=yes". По умолчанию: no, использовать для всех камер соотношение строн 
   # как у камеры в главном окне раскладки.
   ; keep-aspect = yes

   # Использовать целочисленные коэффициенты масштабирования (..., 1/3, 1/2, 1, 2, ...)
   # при выводе изображения для снижения нагрузки на Intel-процессоры при программном
   # видеовыводе.  По умолчанию: no.
   ; smart-scale = yes

   ### настройки интерфейса пользователя ###
   # Заблокировать (не использовать) мышь, клавиатуру или оба устройства.
   # Следуем также установить в "yes", если мышь/клавиатура отсуствуют.
   # По умолчанию: no
   ; no-mouse = yes
   ; no-keyboard = yes
   ; no-tty = yes

   # Заблокировать действия по нажатию клавиш клавиатуры,
   # чьи коды (см. SDL_keysym.h), указанные через запятую, присутствуют в этом списке.
   ; http://www.google.com/search?q=site:www.libsdl.org+SDL_keysym.h
   ; Например, блокирование клавиш <ESC>,<Q>,<X>,<F1>,<4>-<9> и <4>-<9> на нумпаде:
   ; disable-keys = '27,113,120,282,52-57,260-265'

   # Период попыток восстановления связи с демоном avregd (например, при его перезапуске)
   # в секундах. Если значение параметра установлено как 0, то при обрыве связи с демоном,
   # avreg-mon завершит работу с сообщением об ошибке. По умолчанию: 2 сек.
   ; reconnect-timeout = 3

   # Таймаут выдачи предупредительного сигнала "НЕТ СИГНАЛА" в сек. По умолчанию: 4 сек. 
   ; no-signal = 4
   
   # Таймаут (в сек.) отображения камеры, выдвинутой (действиями оператора)
   # на  передний план и распахнутой во весь экран или окно приложения.
   # По умолчанию: 300 сек. 0 - не выходить автоматически из такого режима.
   ; fs-timeout = 300

   # Таймаут отображения названия камеры крупным шрифтом в сек.
   # Если 0 - отображать название камер постоянно. По умолчанию: 6 сек.
   ; camname-timeout = 6

   # Таймаут отображения курсора в сек. Если 0 - не скрывать курсор. По умолчанию: 4 сек.
   ; cursor-timeout = 4

  
   ### Настройки удалённого управления ###
   # Разрешить удалённое управление согласно "remote-control".
   # Значение "remote-control" должно быть вида "http://HOST:PORT/PATH-PREFIX".
   # HOST можно указывать как ip-адрес, хост-имя или "*" как "любой".
   # Пример: при указании "http://192.168.0.1:8155/avreg-mon-cgi", avreg-mon
   # будет слушать HTTP запросы на адресе 192.168.0.1 и 8155 порту.
   # Замечание: значение PORT будет автоматически увеличено на 1 если display='R'
   # См. также: http://avreg.net/manual_tuning_avreg-mon.html#rctrl
   # По умолчанию: <пусто> - запретить удалённое управление.
   ; remote-control = 'http://192.168.0.1:8155/avreg-mon-cgi'

   # Принимать запросы только с хостов и(или) сетей, указанных в списке "allowed-from".
   # Пример: "localhost, 192.168.43.0/24, 10.0.0.0/8".
   # По умолчанию: <пусто> - принимать заросы с любых хостов.
   ; allowed-from = '192.168.0.0/24'

   # Список сообщений тревог. Макс. количесво сообщений - 4, макс. длина одного сообщения - 15.
   # CGI-запрос "/camera?nr=N&param=alarm&action=set&value=CODE"
   # отобразит сообщение #CODE(начинается с 0) в правом верхнем углу окна соотв. камеры.
   # По умолчанию: <пусто> - не отображать сообщения тревог.
   ; alarm-msgs = ' были тревоги ; ВСКРЫТ КОРПУС ; РАЗРЯД БАТАРЕИ '
 
   ### Специфические настройки видеовывода.                                           ###
   ### Предупреждение: установка этих параметров может значительно увеличить нагрузку ### 
   ### на систему, несмотря на кажущуюся пользу от включения некоторых режимов.       ###
   # Попытаться создавать графические элементы прямо в видео-памяти видеокарты.
   ; hw-surface = yes

   # Выводить YUV оверлеи прямо в видео-память видеокарты, если возможно.
   ; yuv-direct = yes
   
   # Использовать аппаратное YUV ускорение видеовывода, если возможно. 
   ; yuv-hwaccel = yes
   
   # Использовать IYUV оверлей вместо YV12 (по умолчанию).
   ; iyuv = yes

   # Попытаться использовать режим с двойными аппаратными видеобуферами.
   ; doublebuf = yes

   # Включает асинхронное обновление экрана. Обычно _замедляет_ работу на
   # однопроцессорных системах, но _может_ ускорить видеовывод на
   # многопроцессорных SMP системах. По умолчанию: no
   ; asyncblit = yes
}
...

Эти параметры также доступны с командной строки, см:

avreg-mon --help

База данных (веб-интерфейс).

В базе данных находятся настройки, определяющие:

  • привязки камер к выходным каналам video4linux демона avregd;
  • раскладки (layouts) - схемы расположения окон камер в главном окне программы.

Демон avregd.

Чтобы обеспечить возможность локального просмотра в реальном времени, прежде всего, нужно настроить демон avregd.

Для каждой камеры, которую мы должны или хотим смотреть локально, должны быть правильно определены следующие параметры разделов «Наблюдение» и «Наблюдение→Локальное» демона avregd: «live_view», «monitor_live» и «v4l_pipe».

Если вам не нужен локальный просмотр, то установите значение «monitor_live» как «Выкл.». Это сохранит ресурсы системы.

Раскладки.

Теперь вам, как администратору системы, нужно разместить камеры по окну просмотрщика. Такое размещение мы назвали раскладкой (layout).

Всего раскладок можно создать 20 штук: 10 для левого или единственного дисплея и 10 для правого дисплея. В каждой из раскладок может быть до 25 камер (включительно), однако, для двух-дисплейных систем максимальное количество (общее) отображаемых камер - 32.

Определяются раскладки через веб-интерфейс:
«Настройки и Управление» → «Настройки» → «Раскладки».

Раскладки для avreg-mon

Управление.

Интерактивное (мышь/клавиатура).

Управлять программой можно с помощью клавиатуры (или специальных урезанных клавиатур - numpad-ов) и/или манипулятора типа мышь.

Сокращения:

  • “кликнутое” окно - окно камеры, над которым находился курсор мыши в момент нажатия кнопки мыши;
  • “выделенное” окно - окно камеры, подсвеченное золотистой рамкой.

Управление кнопками мыши (только одиночные клики):

  • ‹ЛЕВАЯ› - “кликнутое” окно на весь экран (fullscreen) или обратно.
  • ‹ПРАВАЯ› - пауза или стоп-кадр для “выделенного” окна и обратно.

Управление нажатиями клавиш клавиатуры:

  • ‹F1› - показать/скрыть справку;
  • ‹стрелки› или /*-+ на НумПаде - изменить (перейти на другое) “выделенное” окно;
  • ‹F› или ‹Enter› – окно на весь экран (вкл./выкл.);
  • ‹LSHIFT›+‹RSHIFT›+‹F8› – сброс «тревог» на камерах;
  • ‹пробел› или . на НумПаде – пауза или стоп-кадр (stop‹S›/play‹P›);
  • ‹Esc›,‹Q›,‹X› – выход из программы;
  • ‹цифры 0-9› - переключение на раскладку с этим номером.

Для ограничения этого набора допустимых действий используйте параметры: «no-mouse», «no-keyboard», «no-tty», и «disable-keys», устанавливаемые в конфигурационном файле и/или в командной строке (описания см. выше).

Неинтерактивное (http).

Начиная с версии 5.4.4, программой avreg-mon можно частично управлять с помощью http-запросов GET.

Для включения такой возможности нужно разрешить avreg-mon-у слушать запросы http, определив значения следующих параметров конфигурационного файла и/или командной строки: «remote-control» и «allowed-from» (их описания см. выше).

Например, так:

avreg.conf, секция avreg-mon {}

# случать http-запросы только на адресе localhost
remote-control = 'http://localhost:8155/avreg-mon-cgi'

# принимать запросы, отправленные только с 2-х хостов:
#   локального и 192.168.0.1
allowed-from = 'localhost, 192.168.0.1'

Версия 5.4.4 поддерживает следующие путевые суффиксы:

  • /camera или /camera.cgi - управление по номеру камеры;
  • /window или /window - управление по номеру окна (в текущей раскладке);
  • /layout или /layout.cgi - смена раскладки.

Для получения полного URL к значению параметра «remote-control» нужно прибавить путевой суффикс, например,

URL = http://localhost:8155/avreg-mon-cgi/camera.cgi

CGI-параметры (в общем виде).

nr=число      - номер камеры, окна или раскладки
param=строка  - название параметра
action=строка - название действия, set или get
value=строка  - значение параметра

Примеры действующих запросов для версии 5.4.4p1.

# отобразить “тревогу” с кодом 2 на камере с номером 3
http://localhost:8155/avreg-mon-cgi/camera?nr=3&param=alarm&action=set&value=2
# снять тревогу с камеры 3
http://localhost:8155/avreg-mon-cgi/camera?nr=3&param=alarm&action=reset
# снять тревогу со всех камер
http://localhost:8155/avreg-mon-cgi/camera?param=alarm&action=reset
# вывести в полный экран окно камеры с номером 3
http://localhost:8155/avreg-mon-cgi/camera?nr=3&param=fullscreen&action=set&value=1
# убрать режим  вывода в полный экран для камеры с номером 3
http://localhost:8155/avreg-mon-cgi/camera?nr=3&param=fullscreen&action=set&value=0

# то же что и выше, только не по номеру камеры,
# а по номеру окна в раскладке (считается слева направо и сверху вниз)
http://localhost:8155/avreg-mon-cgi/window?nr=3&param=fullscreen&action=set&value=1
http://localhost:8155/avreg-mon-cgi/window?nr=3&param=fullscreen&action=set&value=0
# переключиться на раскладку с номером 1
http://localhost:8155/avreg-mon-cgi/layout?nr=1&action=set

Для отладки, вы можете в одной терминальной сессии запустить avreg-mon с ключём –v (– –verbose), а в другой подавать запросы с помощью консольных wget, curl или GET (из пакета libwww-perl):

% GET -sSe 'http://localhost:8155/avreg-mon-cgi/camera?nr=3&param=fullscreen&action=set&value=0'
GET http://localhost:8155/avreg-mon-cgi/camera?nr=3&param=fullscreen&action=set&value=0 --> 200 OK
Date: Wed, 13 May 2009 12:18:18 GMT
Content-Length: 4
Client-Date: Wed, 13 May 2009 12:18:18 GMT
Client-Peer: 127.0.0.1:8155
Client-Response-Num: 1

OK
manual/tuning/avreg-mon.txt · Последние изменения: 2009-08-03 support