Пример DVApp
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Описание
Приложение для записи цифрового видео (DV).
В этом примере показано, как создавать различные типы графов фильтров для управления цифровыми видеокамерами. В нем также показано, как выполнять захват, предварительный просмотр, передачу и управление устройством с помощью dv camcorder.
Использование
Приложение DVApp поддерживает следующие режимы:
- Предварительный просмотр: отрисовывает dv из видеокамеры в окно видео.
- DV в файл типа 1: записывает данные DV из видеокамеры в DV-файл типа 1.
- Файл типа 1 в DV. Передает данные из DV-файла типа 1 в видеокамеру.
- DV в файл типа 2: записывает данные DV из видеокамеры в DV-файл типа 2.
- Файл типа 2 в DV. Передает данные из dv-файла типа 2 в видеокамеру.
Режимы захвата и передачи также выполняют предварительный просмотр. Каждый из этих режимов также имеет параметр Без предварительного просмотра , который отключает предварительный просмотр. Запись без предварительного просмотра является более эффективной и позволяет сократить количество удаленных кадров.
Приложение запускается в режиме предварительного просмотра. Чтобы выбрать другой режим, выберите режим в меню Режим графа . Для каждого режима DVApp создает граф фильтра, который поддерживает функциональные возможности этого режима. Чтобы сохранить граф в виде файла GraphEdit (GRF), выберите Сохранить граф в файл в меню Файл . Закройте DVApp перед открытием файла в GraphEdit.
Запись в файл:
- В меню Файл выберите Задать выходной файл и введите имя файла.
- В меню Режим графа выберите dv to File Mode (Тип 1 или Тип 2 с предварительным просмотром или без нее).
- Щелкните Запись.
- Если видеокамера находится в режиме VTR, нажмите кнопку Воспроизвести.
- Чтобы остановить запись, нажмите кнопку Остановить.
Для передачи из файла в видеокамеру:
- В меню Файл щелкните Задать входной файл и выберите DV-файл. Файл должен соответствовать выбранному режиму (тип 1 или 2).
- В меню Режим графа выберите режим файлов в dv (тип 1 или тип 2 с предварительным просмотром или без нее).
- Нажмите кнопку Воспроизвести.
- Чтобы записать данные на ленту, нажмите кнопку Записать.
- Чтобы остановить передачу, нажмите кнопку Остановить.
Если видеокамера находится в режиме VTR, пользователь может управлять механизмом транспорта с помощью кнопок приложения в стиле VCR. Чтобы найти ленту, введите целевой код времени и нажмите кнопку поиска.
Чтобы ограничить объем данных, которые захватывает приложение, выберите Размер записи в меню Файл .
Чтобы проверка ленточный формат (NTSC или PAL), выберите Проверить ленту в меню Параметры.
Чтобы изменить размер окна предварительного просмотра, в меню Параметры выберите Изменить размер декодирования.
Заметки по программированию
Main цель этого приложения — показать, как создавать различные графы записи и передачи dv.
Получение и удаление устройства
Приложение обрабатывает получение и удаление устройства, используя два разных метода. При поступлении устройства цикл сообщений приложения отвечает на WM_DEVICECHANGE сообщений. При удалении устройства приложение реагирует на события EC_DEVICE_LOST из диспетчера графов фильтров. Любой из этих подходов работает, хотя событие EC_DEVICE_LOST зависит от наличия устройства в графе фильтров.
Приложение одновременно обрабатывает только одно устройство. Если текущее устройство удалено, приложение ищет другое устройство DV в системе.
На некоторых цифровых видеокамерах пользователь должен отключить устройство при переключении между режимами камеры и режимами VTR, что приводит к возникновению сообщения о потере устройства. Приложение в ответ включает или отключает соответствующие команды меню. Однако если пользователь быстро переключается между режимами, видеокамера может не создать сообщение о потере устройства. Вы можете принудительно обновить меню, выбрав Режим обновления в меню Параметры . Некоторые цифровые видеокамеры могут переключать режимы без отключения, но отправлять сообщение о потере устройства только при переключении в режим VTR.
Управление устройством
Функциональность кнопки "Воспроизвести и запись " зависит от текущего режима:
- Предварительный просмотр: граф фильтра запускается автоматически. Кнопка Воспроизвести запускает транспорт.
- Запись в файл. Кнопка "Записать " запускает граф, а кнопка "Воспроизвести " запускает транспорт.
- Передача на устройство. Кнопка Воспроизвести запускает граф, а кнопка "Записать " запускает транспорт.
Пример приложения не выполняет запись с точностью до кадра. В различных точках приложение вызывает функцию спящего режима , чтобы дождаться ответа устройства. Новые цифровые видеокамеры отправляют уведомление при изменении состояния устройства. Старые устройства могут не поддерживать уведомления; В целях примера вызов спящего режима является более простым решением.
Скачивание примера
Чтобы скачать примеры пакета SDK DirectShow, установите последнюю версию пакета Windows SDK.
Этот пример устанавливается по следующему пути: [корневой каталог sdk]\Samples\Multimedia\DirectShow\Capture\DVApp.
Связанные темы