DirectX 11中的视频播放

时间:2014-01-08 17:31:31

标签: c++ video directx directx-11

非常自我解释。微软有DirectShow用于DirectX 9,但在DX11上使用DirectShow是一个超越语言的COM噩梦。是否有我没有听说过的视频渲染标准,或者为此目的可能有免费的第三方库?

编辑:感谢Mgetz,我知道微软试图找到解决方案Media Foundation。但是,它仅限于Windows 8+,我更愿意避免使用它。

3 个答案:

答案 0 :(得分:3)

这可能与您的要求不完全相符,但对于您的目标,您可以查看ffmpeg,libx264和theora(用于ogg声音)或faad(解码aac)。

我已经完成了使用ffmpeg来打开容器(3gp / mp4很容易实现自己btw如果完全GPL许可证是一个问题),libx264解码到帧并上传到opengl纹理,性能很好(在mac pro它可以在没有优化的情况下为1080p渲染50 fps)并且通过弄脏手,你可以通过纹理和3D变换来做蠢事。

答案 1 :(得分:2)

DirectX视频加速2.0 ,它有一个神话般的API, DXVA-HD (之后见过VMR9的API,特别是那个自定义分配器/演示器用于无渲染绘图,每个其他API都很棒:))

查看:https://msdn.microsoft.com/en-us/library/windows/desktop/ee663586(v=vs.85).aspx

此外,还有一个示例:https://msdn.microsoft.com/en-us/library/windows/desktop/dd756740(v=vs.85).aspx

Windows 7 是受支持的最低Windows版本

您不会相信使用此API可以直接将视频解码为纹理。

答案 2 :(得分:1)

Media Foundation表示它可以开发用于在Windows Vista及更高版本上使用数字媒体的应用程序和组件。"

因此,它看起来应该适用于Vista,Windows 7和Windows 8。