Примеры приложений DirectShow
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Примеры приложений DirectShow можно найти в репозитории Windows-classic-samples на сайте GitHub.
В приведенной ниже таблице перечислены все примеры DirectShow, предоставленные в этом репозитории. Инструкции по сборке примеров см. в документации, предоставленной в пакете Windows SDK. Если существует раздел, описывающий пример, на него ссылается первый столбец этой таблицы.
Пример | Область | Описание | Дополнительные зависимости |
---|---|---|---|
Базовые классы DirectShow | Библиотека базовых классов | Классы C++ и служебные функции, предназначенные для реализации фильтров DirectShow. | |
Пример AmCap | Сбор | Приложение для захвата видео. | strmbase.lib |
Пример DVApp | Сбор | Приложение для записи цифрового видео (DV). | |
Пример PlayCap | Сбор | Простое приложение для записи. | |
Демонстрационный пример DMO | DMO | Выполняет потоковую передачу звуковых данных из WAV-файла через DMO звукового эффекта. | DirectX SDK |
Пример DVD | DVD-диск | Демонстрирует базовое воспроизведение DVD-дисков и навигацию, а также дополнительные функции, такие как управление родительским уровнем, закладки, караоке и синхронизация команд. | |
Пример фильтра InfTee | Фильтры, прочее | Пример реализации фильтра Бесконечное закрепление тройника . | strmbase.lib |
Пример фильтра Metronome | Фильтры, прочее | Показывает, как реализовать эталонные часы. | strmbase.lib |
Пример фильтра средства синтаксического анализа PSI | Фильтры, прочее | Получает таблицы PSI из транспортного потока MPEG-2 и извлекает сведения о программе. | strmbase.lib |
Пример фильтра дампа | Фильтры, отрисовщик | Записывает полученные примеры мультимедиа в текстовый файл. | strmbase.lib |
Фильтр SampVid | Фильтры, отрисовщик | Фильтр отрисовщика видео. | strmbase.lib |
Пример фильтра области | Фильтры, отрисовщик | Отображает звуковые данные в виде волновых форм. | strmbase.lib |
Пример асинхронного фильтра | Фильтры, источник | Фильтр чтения файлов, поддерживающий постепенное скачивание. | strmbase.lib |
Пример фильтра шарика | Фильтры, источник | Фильтр источника видео, который создает изображение прыгающего шара. | strmbase.lib |
Пример push-исходных фильтров | Фильтры, источник | Исходные фильтры, предоставляющие следующие данные в виде видеопотока: одноточечный рисунок, набор растровых изображений, копия текущего изображения рабочего стола. | strmbase.lib |
Пример фильтра Synth | Фильтры, источник | Исходный фильтр, который создает звуковые волны. В этом примере демонстрируется динамическое построение графа. | strmbase.lib |
Пример фильтра EZRGB24 | Фильтры, преобразование | Фильтр обработки изображений. | strmbase.lib |
Пример фильтра горла | Фильтры, преобразование | Фильтр звуковых эффектов. | strmbase.lib |
Пример фильтра WavDest | Фильтры, преобразование | Записывает аудиопоток в WAV-файл. | strmbase.lib |
Пример DMOEnum | Прочее | Показывает, как перечислить объекты мультимедиа (DMOS) DirectX . | |
Пример модуля сопоставления | Прочее | Показывает, как использовать сопоставителя фильтров для поиска фильтров в реестре. | |
Пример SysEnum | Прочее | Демонстрирует использование перечислителя системных устройств для перечисления устройств и фильтров. | |
Пример CutScene | Воспроизведение | Воспроизводит видеофайл в полноэкранном режиме. | |
Пример DDrawXCL | Воспроизведение | Воспроизводит видео в монопольном полноэкранном режиме DirectDraw с помощью интерфейса IDDrawExclModeVideo в фильтре Overlay Mixer . | |
Пример DShowPlayer | Воспроизведение | Приложение для воспроизведения видео. | |
Пример EVRPlayer | Воспроизведение | Демонстрирует использование фильтра DirectShow EVR.
Примечание: Требуется Windows Vista или более поздней версии. Этот пример доступен в windows SDK для Windows Server 2008 или более поздней версии. |
strmbase.lib |
Пример Texture3D9 | Воспроизведение | Рисует видео на поверхности текстуры Microsoft DirectX 9.0. | strmbase.lib, пакет SDK для DirectX |
Пример тикера | VMR-9 | Использует VMR-9 для смешивания видео и текста. | |
Пример VMR9Allocator | VMR-9 | Реализует пользовательский распределитель-выступающий для VMR-9. | strmbase.lib |
Пример VMR9Compositor | VMR-9 | Реализует пользовательский миксер для VMR-9. | |
Пример VMRPlayer | VMR-9 | Использует VMR-9 для смешивания одного или двух запущенных видео и статического изображения. | |
Пример подложки | VMR-9 | Смешивает статический растровый рисунок с видео во время воспроизведения с помощью VMR-9. | |
Пример без окон | VMR-9 | Демонстрирует режим без окон в VMR-9. |
Дополнительные зависимости
Некоторые примеры ссылаться на библиотеку базовых классов DirectShow. Чтобы создать эти примеры, сначала создайте библиотеку базовых классов. Дополнительные сведения см. в разделе Базовые классы DirectShow. Библиотека базовых классов необходима для всех примеров фильтров.
Для некоторых примеров также требуется пакет SDK для DirectX, а также пакет WINDOWS SDK. Чтобы создать эти примеры, необходимо установить пакет SDK для DirectX и задать %DXSDK\_DIR%
переменную среды, равную пути установки пакета SDK для DirectX.
Во многих примерах DirectShow используется набор общих заголовков и исходных файлов, расположенных в directrory \[SDK Root\]Samples\Multimedia\DirectShow\Common
. Если вы копируете образец папки в другой каталог, обязательно скопируйте папку Common
.