О программе "Ориент-М". Это приложение под Windows XP, использующее фильтры DirectShow и реализованное в среде разработки Borland C++ Builder 5. Два основных режима работы программы - одноканальный (
"Коммутатор") и мультиканальный (
"Мультиплексор"). В одноканальном режиме Пользователем выбирается конкретная камера из общего числа подключенных к аппаратному видеокоммутатору. Одновременно с видео может быть использован и аудиоканал. Захваченная и оцифрованная информация в реальном времени выводится на монитор и звуковые колонки, а при необходимости записывается на винчестер в сжатом виде (качество и степень сжатия определяются Пользователем при выборе конкретных "кодеков", установленных в системе).
В режиме "Мультиплексор" после захвата кадра, например с ТВ камеры 1, видеофрейм записывается в буфер, из которого выводится в видеоокно 1 и, одновременно с этим, отсылается на устройство (фильтр) сжатия (кодек) и далее сохраняется в файл. В этот момент видеопереключатель через регистры данных и контроля порта LPT, получает из программы команду на коммутацию видео ТВ камеры 2. Кадр, полученный со второй камеры анализируется (в следствие отсутствия синхронизации ТВ камер, информация может быть неполной) и, по результатам анализа, - пропускается или записывается в буфер. Далее процесс повторяется. Пользователь наблюдает на мониторе мульти-картинку в малокадровом режиме.
Программа написана с учетом возможности использования в системе до четырех карт видеозахвата и четырех видеокоммутаторов, что позволило довести общее число подключаемых ТВ камер - до 32. Однако, необходимо помнить о том, что большое число создаваемых видеопотоков требует значительных рессурсов РС и не всегда оправдано. Опыт показывает, что наиболее оптимально - подключение не более четырех ТВ камер на канал.
В заключении можно сказать о том, что программа видеорегистратора "Ориент-М" с аппаратным видео и аудиокоммутатором позволила осуществить:
- прием видео сигналов от 1 до 8 ТВ камер на одну карту видеозахвата;
- прием аудио сигналов от 1 до 8 микрофонов;
- прием сигналов «тревога» от 1 до 8 шлейфов охранно-пожарной сигнализации;
- запись видео и аудио информации на жесткий диск компьютера по сформированному Пользователем заданию;
- запись видео и аудио информации на жесткий диск компьютера в режиме «коммутатор» или «мультиплексор»;
- запись видео и аудио информации на жесткий диск компьютера по сигналу «тревога»;
- одновременные просмотр (прослушивание) и запись видео и аудио информации в режиме «коммутатор» (в режиме «мультиплексор» только видео);
- совместное использование цветных и черно-белых телевизионных камер;
- функционирование системы, как в автономном режиме, так и под контролем оператора;
- установку видео-разрешения при просмотре и записи не ниже или соответствующему разрешающей способности применяемых компонентов в телевизионной системе;
- автоматическое сканирование свободного места на жестком диске компьютера и определение максимально возможной длительности записи при выбранном Пользователем видеоразрешении;
- воспроизведение ранее сохраненной видео и аудио информации в режимах: «реальный», «пошаговый» с регулировкой длительности «шага»;
- возможность выбора кадра, участка в кадре, их сохранения для дальнейшей обработки в специализированных графических программах.
Скачать исходники (полный архив) - 4,0 Мб.
Скачать исходники (только файлы "*.cpp" и "*.h") - 112 кб.
Скачать демо-версию программы - 5,8 Мб.
В скомпилированной демо-версии функции "аларм" и "аудио" отключены. Для их включения необходимо внести изменения в заголовочный файл "CVideo.h" и заново перекомпилировать весь проект. В этом же файле прописывается число используемых карт видеозахвата и подключенных ТВ камер.
Недостатком проекта можно считать использование большого числа vcl-компонентов сторонних организаций и разработчиков, что безусловно отражается на его возможной повторяемости. Однако в настоящее время проект остается в том виде, в котором был реализован несколько лет тому назад, и никаких изменений в него более производиться не будет. Тем не менее, каки-либо "куски" кода, возможно будут кому-нибудь полезны.
Перечень vcl-компонентов (со ссылками), используемых в проекте, для С++ Builder5
Скачать архив файлов фильтра переключателя видеопотоков - 232 кб.
При написани кода модуля для работы с LPT портом был использован free vcl - компонент "SmallPort" для Делфи или С++ Билдера (Alexander Weitzman: alweit1@hotmail.com)
Скачать архив файлов free vcl - компонента "SmallPort" - 24 кб.
Скачать BaseClasses9 для С++ Builder5 - 4,8 Мб.