DirectShow 示例应用
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
可以在 GitHub 上的 Windows-classic-samples 存储库中找到 DirectShow 示例应用。
下表列出了该存储库中提供的所有 DirectShow 示例。 有关如何生成示例的说明,请参阅 Windows SDK 中提供的文档。 如果存在描述示例的主题,则此表的第一列将链接到该示例。
示例 | 区域 | 说明 | 附加依赖项 |
---|---|---|---|
DirectShow 基类 | 基类库 | 设计用于实现 DirectShow 筛选器的 C++ 类和实用工具函数。 | |
AmCap 示例 | 捕获 | 视频捕获应用程序。 | strmbase.lib |
DVApp 示例 | 捕获 | 数字视频 (DV) 捕获应用程序。 | |
PlayCap 示例 | 捕获 | 简单的捕获应用程序。 | |
DMO 演示示例 | DMO | 通过音频效果 DMO 从 WAV 文件流式传输音频数据。 | DirectX SDK |
DVD 示例 | DVD | 演示基本的 DVD 播放和导航,以及家长级别管理、书签、卡拉OK和命令同步等高级功能。 | |
InfTee 筛选器示例 | 筛选器,杂项 | Infinite Pin Tee 筛选器的示例实现。 | strmbase.lib |
Metronome 筛选器示例 | 筛选器,杂项 | 演示如何实现引用时钟。 | strmbase.lib |
PSI 分析程序筛选器示例 | 筛选器,杂项 | 从 MPEG-2 传输流接收程序特定信息 (PSI) 表,并提取程序信息。 | strmbase.lib |
转储筛选器示例 | 筛选器、呈现器 | 将媒体示例接收的写入文本文件。 | strmbase.lib |
SampVid 筛选器 | 筛选器、呈现器 | 视频呈现器筛选器。 | strmbase.lib |
范围筛选器示例 | 筛选器、呈现器 | 以波形形式显示声音数据。 | strmbase.lib |
异步筛选器示例 | 筛选器,源 | 支持渐进式下载的文件读取器筛选器。 | strmbase.lib |
球过滤器示例 | 筛选器,源 | 生成弹跳球图像的视频源筛选器。 | strmbase.lib |
推送源筛选器示例 | 筛选器,源 | 作为视频流提供以下数据的源筛选器:单个位图、一组位图、当前桌面图像的副本。 | strmbase.lib |
合成器筛选器示例 | 筛选器,源 | 生成音频波形的源筛选器。 此示例演示动态图形生成。 | strmbase.lib |
EZRGB24 筛选器示例 | 筛选器,转换 | 图像处理筛选器。 | strmbase.lib |
Gargle 筛选器示例 | 筛选器,转换 | 音频效果筛选器。 | strmbase.lib |
WavDest 筛选器示例 | 筛选器,转换 | 将音频流写入 WAV 文件。 | strmbase.lib |
DMOEnum 示例 | 其他 | 演示如何 (DSO) 枚举 DirectX 媒体对象 。 | |
映射器示例 | 其他 | 演示如何使用 筛选器映射器 在注册表中查找筛选器。 | |
SysEnum 示例 | 其他 | 演示如何使用 系统设备枚举器 枚举设备和筛选器。 | |
CutScene 示例 | 播放 | 在全屏模式下播放视频文件。 | |
DDrawXCL 示例 | 播放 | 使用覆盖混音器筛选器上的 IDDrawExclModeVideo 接口在 DirectDraw 独占全屏模式下播放视频。 | |
DShowPlayer 示例 | 播放 | 视频播放应用程序。 | |
EVRPlayer 示例 | 播放 | 演示如何使用 DirectShow EVR 筛选器。
注意: 需要 Windows Vista 或更高版本。 适用于 Windows Server 2008 或更高版本的 Windows SDK 中提供了此示例。 |
strmbase.lib |
Texture3D9 示例 | 播放 | 在 Microsoft DirectX 9.0 纹理图面上绘制视频。 | strmbase.lib,DirectX SDK |
Ticker 示例 | 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 基类。 所有示例筛选器都需要基类库。
除了 Windows SDK 之外,一些示例还需要 DirectX SDK。 若要生成这些示例,必须安装 DirectX SDK,并将环境变量设置为 %DXSDK\_DIR%
等于 DirectX SDK 安装路径。
许多 DirectShow 示例使用位于 directrory \[SDK Root\]Samples\Multimedia\DirectShow\Common
中的一组通用标头和源文件。 如果将示例文件夹复制到另一个目录,请确保也复制该 Common
文件夹。