2011-11-13 130 views
1

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

有没有人知道这方面的任何方法或例子?

回答

3
  1. ISampleGrabber是Windows所有版本发布的最后15年
  2. 寻找“微软®DirectX®9.0 SDK更新(2004年10月)”,其中包含示例应用程序,这不正是你想要什么:

Texture3D样品描述

上绘制一个微软的Direct3D纹理表面视频。

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

路径

来源:(SDK根)\样品\ C++ \ DirectShow的\玩家\ Texture3D

可执行文件:(SDK根)\样品\ C++ \ DirectShow的\宾\ Texture3D.exe

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

该过滤器被静静地移除并且没有任何替换。微软表示,媒体基金会是DirectShow的替代选择和继任者,但这无疑是无益的。

+0

我有2010年6月的SDK,它不在那里。 – DrYap

+0

你必须得到较旧的(见答案)以获取样本。它稍后从SDK中删除。 –

+0

我下载了“适用于Windows Vista和.NET Framework 3.0的Microsoft Windows SDK更新”,并且包含我需要的标题。我也发现[在线样本](http://csclab.murraystate.edu/bob.pilgrim/info/game_stuff/DirectX%20(C++)/ Samples/C++/DirectShow/Players/Texture3D /) – DrYap