Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在DirectX中显示视频_C++_Video_Directx_Direct3d_Xaudio2 - Fatal编程技术网

C++ 在DirectX中显示视频

C++ 在DirectX中显示视频,c++,video,directx,direct3d,xaudio2,C++,Video,Directx,Direct3d,Xaudio2,在使用XAudio2和Direct3D9/10的应用程序中显示视频(带声音!)的最佳/最简单方法是什么 至少,它需要能够流式传输可能更大的视频,并注意windows纵横比可能不同于视频(例如添加信箱),尽管理想情况下,我希望能够将视频嵌入3D场景 当然,我可以找到一种方法将每一帧加载到纹理中,在渲染后丢弃/重用纹理,并通过XAudio2单独播放音频,但是除了为至少一种格式编写加载程序外,我还需要处理一些事情,比如同步视频和音频组件,因此,希望有一个更可靠的解决方案可用,甚至是一个现成的免费解决方

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

至少,它需要能够流式传输可能更大的视频,并注意windows纵横比可能不同于视频(例如添加信箱),尽管理想情况下,我希望能够将视频嵌入3D场景


当然,我可以找到一种方法将每一帧加载到纹理中,在渲染后丢弃/重用纹理,并通过XAudio2单独播放音频,但是除了为至少一种格式编写加载程序外,我还需要处理一些事情,比如同步视频和音频组件,因此,希望有一个更可靠的解决方案可用,甚至是一个现成的免费解决方案,具有合适的lisence(二进制形式的商业发行版,在使用LGPL的情况下,动态链接很好)。

在Windows SDK中,有一个用于将视频渲染为纹理的解决方案。它也处理音频输出


但也有局限性,我不能说这很容易。

你看过吗?这是很多游戏用来播放视频的地方。非常好用,您不必自己从头开始编写所有视频内容。

DirectShow不是一个选项吗?它使用Direct3D进行视频渲染。不幸的是,它也非常昂贵。Theora是一个自由的选择,从客观的角度来看也是一样好的。