Видеонаблюдение через интернет в веб-браузере

Структура базы данных avreg5_db.

Структуры таблиц базы данных AVReg 5.5.

EVENTS - события

Название поля Тип данных Описание
DT1 datetime время наступления события, условно - время записи в таблицу
DT2 datetime *
CAM_NR tinyint(3) номер камеры или 0 для “не-камерных“ событий
EVT_ID tinyint(3) числовой идентификатор события [1..32] определяющий тип события
SER_NR smallint(5) *
FILESZ_KB int(10) *
FRAMES mediumint(8) *
U16_1 smallint(5) *
U16_2 smallint(5) *
EVT_CONT char(125) имя файла или краткое описание “не-файловых“ событий

* - в зависимости от типа события (поле EVT_ID)

пример SQL запроса

SELECT * FROM EVENTS
WHERE
  (CAM_NR IN (0, 1)) AND
  (
    (EVT_ID IN (23,32) AND 
       ((DT1 BETWEEN '2010-04-22 15:00:00' AND '2010-04-22 16:59:59')
         OR
        (DT2 BETWEEN '2010-04-22 15:00:00' AND '2010-04-22 16:59:59'))
    )
      OR
    (EVT_ID IN (16,20,13,14,5,3,1,4,15,17,18,19,21) AND
       (DT1 BETWEEN '2010-04-22 15:00:00' AND '2010-04-22 16:59:59')
    )
  )
ORDER BY DT1

Описание данных в полях, в зависимости от типа события в значении поля EVT_ID [1..32]:

EVT_ID = 1 - сообщения демона avregd

SER_NR Событие Значение других значимых полей
0 запуск DT1=DT2 - время запуска демона
1 останов DT1 - время останова, DT2 - время запуска
2 reload(перечитка DB конфигурации) DT1 - время останова, DT2 - время запуска

EVT_ID = 3 - сообщения от подсистемы аудио/видео захвата

В поле U16_1 - 1 ( для сетевых камер) и 2 для video4linux.
В поле U16_2 - 1 (захват видео), 2 (захват аудио).

SER_NR Событие Значение других значимых полей
0 начало захвата DT2 - время последнего read() для сетевых камер или время смены состояния канала для video4linux-камер
1 останов захвата не используется в наст. время
2 пауза не используется в наст. время
3 сбой захвата DT1 - время сбоя, DT2 - время начала

Следует учитывать:

  • для video4linux (локальных аналоговых камер) событие «начало захвата» по запуску демона не вырабатывается;
  • для всех камер событие «останов захвата» по остановке демона не вырабатывается;
  • событие «сбой захвата» может быть прислано несколько раз подряд, например, при разрыве соединения с сетевой камерой и, следом, с ошибкой очередной попытки установления соединения;
  • в некоторых случаях DT2 может быть 1970-01-01 03:00:0 или 0(unixtime), например, при самом первом соединении с ip-камерой.

EVT_ID = 4 - сообщения от http сервера (запросы сетевых клиентов)

Для предотвращения чрезмерного увеличения размера базы данных частыми записями с информацией о запросах сетевых клиентов в базу данных сообщения с типом EVT_ID = 4 попадают, только при запуске демона avregd с параметром “-v” (verbose). Внешнему скрипту event-collector (если он только разрешён и используется) в любом случае передаются все сообщения.

Значения полей U16_1 и U16_2 такие же как для EVT_ID = 3 (см. выше). DT2 - время первого запроса или начала сессии (в рамках одного постоянного соединения http persistant connection).

SER_NR Событие
0 новый http запрос
1 tcp соединение закрыто

EVT_ID = 5 - вкл./выкл. записи на жесткий диск

Примечание: эти события формируются только в режиме записи «Выборочный» ( параметры save_video/save_audio).

Название поля Описание
DT2 время предыдущей команды
SER_NR номер сессии записи
FRAMES 1 - вкл., 3 - выкл. записи
U16_1 источник команды: 1 - демон, 2 - детектор движения, 3 - детектор аудио, 20 - оператор
U16_2 тип медиа: 1 - видео, 2 - аудио, 3 - аудио+видео, 7 - аудио+видео+субтитры

EVT_ID = 13/14 - начало(13)/окончание(14) сессии движения (детектор движения)

EVT_ID Описание значения поля DT1 Описание значения поля DT2
13 - начало сессии время захвата первого кадра на котором сработал детектор время последней детекции движения в предыдущей сессии
14 - её завершение «сейчас» минус значение параметра motion_series_end время начала этой сессии

Далее описаны значения 4-х полей - состояние детектора движения на первом кадре с движением и на кадре или на котором детектор «закрыл» сессию.

Название поля Описание
FILESZ_KB кол-во изменённых пикселей в первом кадре с движением (абсолют. или % - в зависимости от режима работы детектора, см. настройки diff_pxls_threshold)
FRAMES порог, действующее значение motion_sensor
U16_1 значение noise_filter
U16_2 значение средней яркости в этом кадре [0..255]

EVT_ID = 22 - изменения качества видеокадра (засветка, затемнение и т.п.)

SER_NR Описание
0 засветка прекратилась
1 обнаружили засветку
2 затемнение прекратилось
3 обнаружили сильное затемнение кадра
Название поля Описание
DT1 время первичной детекции состояния засветки или затемнения
DT2 DT2 = DT1 события - начала этого режима, определено только при «выкл.» режимов (SER_NR = 0,2)
FILESZ_KB продолжительность режима в секундах, определено только при «выкл.» режимов (SER_NR = 0,2)
FRAMES текущий порог срабатывания ({dazzle,darkness}_threshold)
U16_1 среднее значение яркости в начале режима
U16_2 среднее значение яркости сейчас

EVT_ID = [15-21] - запись на диск видеокадра в формате JPEG

EVT_ID Описание
15 принудительный (сплошной) режим записи
16 первый кадр «с движением» в сессии движения
17 кадр «с движением» в сессии движения
18 pre_record кадр, «без движения»
19 post_record кадр, «без движения»
20 кадр-отметка, snapshot
21 обычный кадр, без движения
Название поля Описание
SER_NR порядковый номер сессии движения или 0, если детектор не используется
FILESZ_KB размер файла в КилоБайтах (1kB = 1024B)
U16_1 разрешение кадра по горизонтали
U16_2 разрешение кадра по вертикали

EVT_ID = 23 - запись на диск видеопоследовательности, например, в формате AVI

Название поля Описание
DT1 время последнего кадра, записанного в видео-файл
DT2 время первого кадра, записанного в видео-файл
SER_NR порядковый номер сессии движения или 0, если детектор не используется
FILESZ_KB размер файла в КилоБайтах (1kB = 1024B)
FRAMES количество кадров в видеопоследовательности
U16_1 разрешение видео по горизонтали
U16_2 разрешение видео по вертикали
EVT_CONT относительное имя файла в каталоге {storage-dir}

EVT_ID = 32 - запись на диск аудиопоследовательности, например, в формате mp4 или mp2

Название поля Описание
DT1 время последнего аудио блока, записанного в аудио-файл
DT2 время первого аудио блока, записанного в аудио-файл
SER_NR сейчас всегда 0
FILESZ_KB размер файла в КилоБайтах (1kB = 1024B)
FRAMES bit rate
U16_1 количество каналов
U16_2 sample rate
EVT_CONT относительное имя файла в каталоге {storage-dir}

USERS - пользователи

Название поля Описание
HOST Хост или подсеть пользователя.
USER Логин.
PASSWD Закодированный пароль.
STATUS Группа, [0-5] - инсталляторы, админы, просмотр архива, операторы наблюдения, только просмотр.
ALLOW_CAMS Список доступных камер.
FORCED_SAVING_LIMIT Максимальная длительность принудительной записи (по команде) в минутах.
SESSIONS_PER_CAM Ограничение количества одновременных просмотров каждой конкретной камеры.
LIMIT_FPS Ограничение скорости отдаваемого видеопотока для каждой камеры.
NONMOTION_FPS то же что LIMIT_FPS, но в моменты когда движение не обнаруживается.
LIMIT_KBPS то же что LIMIT_FPS, но в КилоБайтах (прим. в версии 5.5 не задействовано).
SESSION_TIME Ограничение длительности одного непрерывного сеанса просмотра камеры в реальном времени.
SESSION_VOLUME Ограничение объёма одного непрерывного сеанса просмотра камеры в реальном времени.
LONGNAME Полное имя пользователя.
CHANGE_HOST Последние изменения: откуда,
CHANGE_USER кто и
CHANGE_TIME когда.

CAMERAS - настройки камер

Название поля Описание
BIND_MAC Не используется, должно быть «local»
CAM_NR Номер камеры.
PARAM Имя параметра.
VALUE Значение параметра (строковое представление).
CHANGE_HOST Последние изменения: откуда,
CHANGE_USER кто и
CHANGE_TIME когда.

MONITORS - раскладки для avreg-mon

В последующих версиях таблица возможно будет переименована в LAYOUTS.
Название поля Описание
BIND_MAC Не используется, должно быть «local»
DISPLAY Для какого дисплея раскладка: левого (L) или правого (R).
MON_NR Номер раскладки [0-9].
MON_TYPE Тип раскладки: одна камера, квадратор, мультиэкран и т.п.
MON_NAME Тестовое имя раскладки.
IS_DEFAULT Если 1, то раскладка по умолчанию. (Прим.: в версии 5.5 не используется)
WIN1-WIN32 Номер камеры в конкретном окне (соотв. имени поля), если NULL - пустое окно без камеры.
CHANGE_HOST Последние изменения: откуда,
CHANGE_USER кто и
CHANGE_TIME когда.
manual/applications/avreg5_db-structure.txt · Последние изменения: 2011-03-04