Список форумов » Технический форум » Видеонаблюдение » Программные решения

 

Начать новую тему Ответить на тему
Автор Сообщение
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 17 мар 2010, 14:56
  

Аватара пользователя
Администратор

Зарегистрирован: 04 май 2009, 19:04
Сообщения: 168
Откуда: Великий Новгород
Чтобы упорядочить ход собственных мыслей, да и обозначить общий план реализации проекта, предлагаю к рассмотрению структурную схему кода EsperXM2:
Вложение:
classschema.png

Сразу оговорюсь, что данная схема не содержит классы всяческих информационных диалогов и диалогов настроек, только то, отчего принципиально зависит правильная работа приложения.

Перейдём непосредственно к описанию каждого класса:

EsperObject - базовый интерфейс для большинства классов проекта. Основное предназначение заключается в хранении глобальных типов наследуемых от него объектов и конечно же сбор и отправка на обработку логов.

VideoObject - интерфейс для для хранения типов наследуемых от него видео объектов. Служит как единая "точка доступа" к любому типу видеообъекта.

VidSource - класс реализации источника видеоинформации. Организует доступ к различным устройствам (видеоисточникам), в задачи которых входит формирование видеопотока. Поддерживает только вывод.

V4LDev - объектный интерфейс к Video4Linux API.

V4L2Dev - объектный интерфейс к Video4Linux2 API.

NetClient - служит для организации приёма видеопотока из локальной сети и Интернета (очень вероятна необходимость его расширения (наследования) другим классом для реализации той же работы, но по http протоколу).

FileReader - файловый плэйер. Служит источником видео, формируемым из мультимедиа файлов.

FilesArchive - расширяет возможности плэйера, добавляя к их совместной функциональности управление архивом файлов видеозаписей.

VidFilter - базовый интерфейс к классам, реализующим управление, видоизменение и отправку видеоинформации, получаемой от видеоисточников. Поддерживает ввод/вывод видеопотока в зависимости от наследуемого от него объекта дочернего класса.

Motion - детектор движения. Поддерживает ввод/вывод видеопотока.

FileWriter - собственно запись видеоинформации в файл. Поддерживает только ввод видеопотока.

NetServer - отправка видеоинформации в сеть по запросу. Поддерживает только ввод видеопотока *.

* полагаю, здесь необходимо пояснение того, почему например NetServer предназначен для отправки видео в сеть клиентам, но при этом я указываю, что поддерживается только ввод. Имеется ввиду внутрепрограммная передача информации. То есть к объекту класса NetServer нельзя подключить объект класса Motion. Однако никто не запрещает осуществить обратное подключение, поскольку Motion является двусторонним видеофильтром.

Итак, поехали дальше...

VidWinWidget - виджет (то есть видимый на экране объект), являющийся в целом интерфейсом к различным типам видеоокон, которые в свою очередь и производят рисование видеокадров на экране монитора.

X11Widget - видеоокно, для вывода кадров в котором, не используется аппаратное ускорение видеокарты. Однако работать сей монстр будет практически на любом оборудовании.

OpenGLWidget - альтернатива X11Widget'у. При его работе загрузка ЦП невысока, а результат работы вполне себе приемлем. Хотя конечно не все видео форматы поддерживаются. Используются аппаратные возможности видеокарты по обработке и выводу видео.

XVideoWidget - ещё один тип "рисовальщика" видео. Также как и OpenGLWidget использует аппаратные возможности видеокарты. Существенно ограничен в поддержке различных типов видеоформатов, однако с теми, с кем умеет работать справляется на ура.

Плавно переходим к...

VideoModel - класс-интерфейс, управляющий доступом ко всем видеоустройствам и видеообъектам, подключенным к системе. Наследуясь от класса QAbstractItemModel библиотеки Qt4, предоставляет универсальное средство для управления и получения списка видеоустройств.

VideoWidget - собственно виджет для размещения и позиционирования на экране всех подключенных видеоокон.


У вас нет доступа для просмотра вложений в этом сообщении.

_________________
Да пребудут в целости хмуры и усталы
Делатели ценности профессионалы


          Вернуться к началу  
 
Не в сети
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 19 мар 2010, 16:08
  


Зарегистрирован: 05 фев 2010, 00:59
Сообщения: 6
Изменения в проекте можно сделать как тут: http://code.google.com/p/wl500g/wiki/NEWS
Под "копилку" идей и проблем можно приспособить это: http://code.google.com/p/wl500g/issues/list
Тут же в FAQ описывать фишки и куски документации на будующее (сборка и т.д.)


          Вернуться к началу  
 
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 19 мар 2010, 19:35
  

Аватара пользователя
Администратор

Зарегистрирован: 04 май 2009, 19:04
Сообщения: 168
Откуда: Великий Новгород
:shok: :unknw:

_________________
Да пребудут в целости хмуры и усталы
Делатели ценности профессионалы


          Вернуться к началу  
 
Не в сети
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 19 мар 2010, 21:39
  


Зарегистрирован: 05 фев 2010, 00:59
Сообщения: 6
:scratch_one-s_head:


          Вернуться к началу  
 
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 19 мар 2010, 21:58
  

Аватара пользователя
Участник

Зарегистрирован: 21 апр 2009, 16:38
Сообщения: 1218
Откуда: СССР
DMG писал(а):
:scratch_one-s_head:

Дело в том, что внутри проекта у участником имеется несколько собственных ресурсов, на которых это дело несложно реализовать.
На "code" у гугля размещены файлы лишь для удобства скачивания, но вовсе не от того, что их более негде было разместить. :wink3:


          Вернуться к началу  
 
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 28 мар 2010, 12:54
  

Аватара пользователя
Администратор

Зарегистрирован: 04 май 2009, 19:04
Сообщения: 168
Откуда: Великий Новгород
На всякий случай...

Сегодня вечером залью в транк исходники новой версии проекта (будущий релиз 0.1.4). Сделать мне это нужно для того, чтобы, если на работе появится свободное время, я мог работать над программой (с флэшкой не хочется таскаться). Предупреждаю сразу, что разрабатываемая версия пока ещё не является рабочей, поэтому качать её не стоит.

Сейчас в транке версия 0.1.3, и хотя она и не имеет статуса стабильной, всё-таки вполне работоспособна. Поэтому, если кому она интересна, предлагаю её сегодня скачать.

_________________
Да пребудут в целости хмуры и усталы
Делатели ценности профессионалы


          Вернуться к началу  
 
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 28 мар 2010, 17:07
  

Аватара пользователя
Участник

Зарегистрирован: 21 апр 2009, 16:38
Сообщения: 1218
Откуда: СССР
alexis031182 писал(а):
На всякий случай...

На всякий случай закидываю сюда.
Вложение:
esper.tar.gz


У вас нет доступа для просмотра вложений в этом сообщении.


          Вернуться к началу  
 
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 12 май 2010, 13:56
  

Аватара пользователя
Администратор

Зарегистрирован: 04 май 2009, 19:04
Сообщения: 168
Откуда: Великий Новгород
Забил я пока на создание графэдита под Линукс и решил продолжить работу со старой версией проекта. Тут вот детектор движения сделал. Прошу потестить. Не удивляйтесь, что не вызывается диалог с настройками - его попросту нет. Слегка код почистил :crazy: Ко всему прочему, добавил в приложение многопоточность. Так что если у вас многоядерный проц, производительность программы должна увеличиться.


У вас нет доступа для просмотра вложений в этом сообщении.

_________________
Да пребудут в целости хмуры и усталы
Делатели ценности профессионалы


          Вернуться к началу  
 
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 01 июн 2010, 16:57
  

Аватара пользователя
Администратор

Зарегистрирован: 04 май 2009, 19:04
Сообщения: 168
Откуда: Великий Новгород
Тестируем RoundRobin'а (функция для плат захвата с одним АЦП на несколько входов)


У вас нет доступа для просмотра вложений в этом сообщении.

_________________
Да пребудут в целости хмуры и усталы
Делатели ценности профессионалы


          Вернуться к началу  
 
 Заголовок сообщения: Re: EsperXM2: motion плюс всё, всё, всё
СообщениеДобавлено: 03 июн 2010, 12:24
  

Аватара пользователя
Администратор

Зарегистрирован: 04 май 2009, 19:04
Сообщения: 168
Откуда: Великий Новгород
Готова более "причёсанная" версия проекта. До релиза 0.1.5 осталось доделать файловый плэйер и сохранение настроек приложения в конфигурационный файл. Ну может ещё каких-нибудь "фишек" добавится.

В режиме RoundRobin (в исходниках, в комментах кода, я его называю "режим мультиплексирования") удалось добиться скорости в 7 кадров секунду на канал при двух видеовходах на 1 АЦП. Бывает, что и 8 и более к/с без сбивок работают, если видеосигналы не сильно рассинхронизированы. Пробуйте.

Забыл написать в прошлом посте, что:
- диалог настроек приложения вызывается через <Ctrl>+<A>;
- активация детектора движения (ДД) для всех камер с текущими настройками - <Ctrl>+<M> (индивидуально ДД для каждой камеры можно настроить по правой кнопке мыши на соответствующем видеоокне);
- безусловная активация записи в файл (ДД для всех камер будет отключён) - <Ctrl>+<S>;
- небезусловная активация записи в файл (камеры с активным ДД затронуты не будут) - <Alt>+<S>;
- выполнить отключение и ДД, и записи в файл (режим просмотра) - <Ctrl>+<V>;
- ну и нажатие <Ctrl>+<F> сменит режим окна приложения с полноэкранного в оконный и наоборот.

Зависимости:
- Qt4
- OpenGL
- XVideo
- OpenCV
- FFMpeg (прежде всего libavcodec)


У вас нет доступа для просмотра вложений в этом сообщении.

_________________
Да пребудут в целости хмуры и усталы
Делатели ценности профессионалы


          Вернуться к началу  
 
 
Начать новую тему Ответить на тему



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Показать сообщения за:  Поле сортировки  
Перейти:  

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
cron


Яндекс цитирования Словенск