當前正在構建需要播放高清WMV和H264視頻的Windows .NET應用程序的原型。我的測試文件全部是1080p。DirectShow/WinForms中的硬件加速視頻
目標硬件具有較弱的Atom處理器,但具有較強的NVidia 9400圖形。我知道這些圖形是集成的,但我的理解是它們適合視頻播放。
測試在Windows 7上,如果我在WPF玩我的測試文件,使用MediaElement控件,我的CPU使用率是0.1
然而,目標操作系統是Windows XP,我們可能沒有.NET 3.0 。因此,該應用程序需要在WinForms中運行。由於各種原因,Windows Media Player ActiveX不是一個選項。所以我們正在研究DirectShow。
我把一個使用DirectShow.NET的播放器放在一起,使用VMR9將視頻全屏播放。使用這種方法,我的WMV文件消耗了20-30%的CPU。我必須安裝一個mp4複用器/分路器才能播放H264文件,然後消耗40-50%的CPU。
- 我知道Windows 7支持H264出盒。但是,它似乎不是一個DirectShow過濾器?
- 爲什麼使用WPF加速視頻,但使用DirectShow時不能加速?我的理解是,DirectShow支持DXvA。
tldr:如何在WinForms中實現硬件加速的WMV和H264視頻播放?
謝謝!
你必須找到與工作DirectShow中得到更好的PERF的一個更聰明的解碼器。好的花錢,ffdshow是免費的。在某些時候,你可能要考慮是否就沒有這些事了幾個XP計算機上安裝.NET 3.0的麻煩比安裝可能是昂貴的胡思亂想解碼器或許更少。 – 2010-01-26 15:48:51
謝謝!看來,.NET 3.0 EVR是答案... – TheNextman 2010-01-26 21:03:32