2014-01-08 49 views
9

很自我解釋。微軟在DirectX 9中使用DirectShow,但在DX11中使用DirectShow是一個超乎言語的COM噩夢。有沒有我沒有聽說過的視頻渲染標準,或者是否有一個用於此目的的免費第三方庫?在DirectX 11中播放視頻

編輯:感謝Mgetz,我知道微軟嘗試解決方案,Media Foundation。但是,它僅限於Windows 8+,我寧願避免。

+0

爲DirectShow的替換爲[媒體基礎(http://msdn.microsoft.com/en-us/library/windows/desktop/ms694197(V = vs.85)的.aspx) – Mgetz

+0

@Mgetz優於DSHOW ...你還有什麼?級別越高越好。 – Proxy

+0

媒體基礎直接支持與[Direct3D11]互操作(http://msdn.microsoft.com/en-us/library/windows/desktop/hh447677(v = vs.85).aspx) – Mgetz

回答

3

這可能不完全符合您的要求,但對於您的目標,您可以查看ffmpeg,libx264和theora(用於ogg聲音)或faad(解碼aac)。

我已經完成了使用ffmpeg打開容器(3gp/mp4很簡單,暗示自己btw如果完整的GPL許可證是一個問題),libx264解碼幀和上傳到opengl紋理,性能很好(在Mac上它可以在不進行優化的情況下爲1080p渲染50幀/秒),並且通過讓手變髒,您可以在紋理和3d變換中做出愚蠢的事情。

+1

你的答案似乎與這裏提出的建議最爲一致; https://gamedev.stackexchange.com/questions/40642/video-playback-in-games-formats-decoding另外,OP在zip文件中發佈了一個示例項目,並在答案上共享。 – leetNightshade

0

Media Foundation表示它「能夠開發在Windows Vista和更高版本上使用數字媒體的應用程序和組件」。

因此,它看起來像它應該爲Vista,Windows 7和Windows上工作8

2

DirectX視頻加速2.0其中有一個神話般的API,在DXVA-HD(一個具有後看到VMR9的API,尤其是與renderless繪製自定義分配器/演示,所有其他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將它的視頻解碼成你的紋理。