1

我一直在尝试在我的 Direct3D 应用程序中播放视频,并且一直在 DirectShow 的帮助下尝试这样做。我的问题是我找不到如何将帧数据放入纹理中(ISampleGrabber 不会安装)。

有谁知道这样做的任何方法或例子?

4

1 回答 1

3
  1. ISampleGrabber适用于过去 15 年以上发布的所有 Windows 版本
  2. 查找包含示例应用程序的“Microsoft® DirectX® 9.0 SDK 更新(2004 年 10 月)”,它完全符合您的要求:

Texture3D 示例说明

在 Microsoft® Direct3D 纹理表面上绘制视频。

注意 此示例不支持在示例运行时更改监视器的显示属性。

小路

来源:(SDK 根目录)\Samples\C++\DirectShow\Players\Texture3D

可执行文件:(SDK 根目录)\Samples\C++\DirectShow\Bin\Texture3D.exe

更新。尽管 Sample Grabber 存在于许多版本的 Windows 中,但它最终与qedit.dll最新版本的操作系统(尤其是 Windows Server 2008)中托管的其他过滤器一起被删除。那些应用程序依赖于这个 API 的人,应该考虑使用来自旧 SDK 的 Grabber 示例构建一个替代品。这同样适用于那些需要这个过滤器的人,因为互联网上有很多参考资料和关于如何使用它来访问媒体流的教程。

过滤器被无声地移除,没有任何更换。Microsoft 建议 Media Foundation 是 DirectShow 的替代选项和继任者,但这几乎没有帮助。

于 2011-11-14T09:03:24.707 回答