Video for Windows

Microsoft Video for Windows (VFW) — программный интерфейс (API), позволяющий обрабатывать видеоданные. API появился в 16-разрядных версиях Windows, в дальнейшем многие его функции были заменены возможностями DirectX.

Функции VFW

Работа с файлами AVI

Функции для работы с AVI файлами обеспечивают доступ приложений к файлам формата RIFF, таким как WAV и AVI. Файл AVI состоит из чередующихся блоков аудио, видео и других типов данных. Функции обрабатывают файл как один или несколько потоков данных, таких как видеоизображение и звуковая дорожка, при этом приложения могут отдельно обращаться к каждому из этих потоков. Функции выполнены с использованием технологии OLE, при открытии файлов и потоков внутри файлов приложению возвращается указатель на интерфейс, производящий чтение и запись файла и его потоков. Возможно использование нестандартных обработчиков файлов и потоков, которые должны быть предварительно зарегистрированы.

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

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

Менеджер сжатия изображения

Менеджер сжатия изображения обеспечивает доступ к интерфейсу, используемому видеокодеками для обработки данных в реальном времени. Менеджер является промежуточным элементом между приложением и кодеками. Вызов приложением функции менеджера транслируется в сообщение посылаемое кодеку, возвращаемое значение принимается менеджером и управление возвращается приложению. Функция кодека, обрабатывающая сообщения, аналогична функции DriverProc устанавливаемого драйвера.

Приложение может использовать менеджер для выполнения следующих задач:

  • сжатие и декомпрессия видеоданных;
  • отправка сжатых видеоданных для отображения на экране;
  • установка и удаление кодеков, а также использование собственных кодеков без установки;
  • обработка текста и нестандартных форматов данных.

Для доступа к аудиокодекам используется менеджер сжатия звука.

Захват изображения

Для включения функций захвата изображения и звука в приложение используется специальный класс окон AVICap. Окна, созданные с использованием класса AVICap можно использовать для выполнения следующих задач:

  • захват изображения и звука в файл AVI;
  • динамическое подключение и отключение видео и звуковых устройств;
  • просмотр входящего видеосигнала с использованием оверлея или метода предпросмотра;
  • указание файла, используемого для захвата, и копирование его содержимого в другой файл;
  • установка частоты захвата (кадров в секунду);
  • отображение диалоговых окон для указания источника видеосигнала и формата записываемых данных;
  • создание, сохранение и загрузка палитр;
  • копирование изображений и палитр в буфер обмена;
  • захват и сохранение одиночных изображений.

Нестандартные форматы файлов и потоков

Для работы с файлами нестандартных форматов или другими источниками данных, такими как цифровые каналы передачи, содержащими несколько потоков данных, могут использоваться дополнительные обработчики файлов. Для работы с потоками нестандартных форматов (изображение, звук, музыка MIDI, текст или другие данные) используются дополнительные обработчики потоков. Обработчики файлов и потоков должны быть вынесены в одну или несколько динамически подключаемых библиотек (DLL), отдельных от основных файлов приложения.

Вывод изображения на экран

Функции вывода изображения на экран (функции DrawDib) обеспечивают возможность высокопроизводительной отрисовки изображения непосредственно в видеопамять. Функции поддерживают изменение размеров и глубины цвета изображения, декомпрессию изображения, потоки данных и большое количество режимов вывода изображения (от 16-и цветовой палитры до 32-битного изображения).

Ссылки

Video for Windows (англ.). MSDN Library. Microsoft (5 мая 2012). Дата обращения: 13 июля 2012. Архивировано 28 сентября 2012 года.