2009-07-17 91 views
5

在使用XAudio2和Direct3D9/10的应用程序中显示视频(带声音!)的最佳/最简单的方法是什么?在DirectX中显示视频

至少它需要能够传输可能较大的视频,并注意窗口长宽比可能与视频不同(例如,通过添加信箱),尽管理想地说,将视频嵌入到3D场景中。

我当然可以想出一种方法来将每个帧加载到纹理中,丢弃/重新使用一次渲染后的纹理,并通过XAudio2分别播放音频,但也会为至少一种格式编写加载程序。还需要处理诸如同步视频和音频组件的东西,所以希望有一个更为先进的解决方案,或者甚至是一个现成的免费的解决方案,并带有一个合适的lisence(以二进制形式进行商业发布,在LGPL的情况下动态链接就很好) )。

+0

DirectShow不是一个选项?它使用Direct3D进行视频渲染。 – 2009-07-17 17:47:02

回答

7

在Windows SDK中,有一个DirectShow example用于将视频渲染到纹理。它也处理音频输出。

但有一些限制,我不能诚实地称它很容易。

1

你看过Bink video?它的许多游戏用于视频播放。很好的工作,你不必从头开始编写所有的视频资料。

+0

不幸的是,它也非常昂贵。 Theora是一个免费的选择,从客观的角度来看也是一样的好。 – CodeMouse92 2011-04-09 07:40:55