2010-05-26 66 views
3

在運行數百臺計算機(專用)的程序中使用Windows Media Player OCX。如何以編程方式關閉視頻加速

我發現當視頻加速打開到「全部」時,在某些電腦上它會導致視頻無法正確播放,電影之間有綠色方塊等等。把加速度轉到「無」,一切都很好。

該程序運行在〜800臺將自動更新我的程序的計算機上。所以我想添加到我的程序啓動它關閉視頻加速。

問題是,我該如何以編程方式關閉視頻加速?

所有電腦都運行XP並且至少有第二個服務包。 需要我很長時間才能手動登錄到所有這些計算機並更改該設置,這就是爲什麼我希望該程序能夠爲我自動執行此操作。

alt text http://img195.imageshack.us/img195/2848/videoacc.jpg

回答

1

使用運行procmon中,並過濾掉不必要的數據所建議的過程中,我能夠確定在註冊表中的變化時,這個值改爲:

全視頻加速:

[HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences\VideoSettings] 
"PerformanceSettings"=dword:00000002 
"UseVMR"=dword:00000001 
"UseVMROverlay"=dword:00000001 
"UseRGB"=dword:00000001 
"UseYUV"=dword:00000001 
"UseFullScrMS"=dword:00000000 
"DontUseFrameInterpolation"=dword:00000000 
"DVDUseVMR"=dword:00000001 
"DVDUseVMROverlay"=dword:00000001 
"DVDUseVMRFSMS"=dword:00000001 
"DVDUseSWDecoder"=dword:00000001 

沒有視頻加速:

[HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Preferences\VideoSettings] 
"PerformanceSettings"=dword:00000000 
"UseVMR"=dword:00000000 
"UseVMROverlay"=dword:00000000 
"UseRGB"=dword:00000000 
"UseYUV"=dword:00000000 
"UseFullScrMS"=dword:00000001 
"DontUseFrameInterpolation"=dword:00000001 
"DVDUseVMR"=dword:00000000 
"DVDUseVMROverlay"=dword:00000000 
"DVDUseVMRFSMS"=dword:00000000 
"DVDUseSWDecoder"=dword:00000000 

因此,簡而言之,設置

  • PerformanceSettings
  • UseVMR
  • UseVMROverlay
  • UserRGB
  • UseYUV
  • DVDUseVMR
  • DVDUseVMROverlay
  • DVDUseVMRFSMS
  • DVDUseSWDecoder

爲0,並設置

  • UseFullScrMS
  • DontUseFrameInterpolation

爲1

0

看來你不是唯一一個有這個問題。這是博客的鏈接 - 作者通過降低硬件加速級別來解決他的問題。使用REG腳本在Media Player 9,10和11上測試以設置適當的設置。

http://thebackroomtech.com/2009/04/15/global-fix-windows-media-player-audio-works-video-does-not/

除了應用此修復程序,您可以檢查受影響的機器有最新的驅動程序和編解碼器版本。最後,如果可能的話,您可以考慮將內容重新編碼爲不會產生顯示問題的格式(如果該錯誤與編解碼器相關)。

使用硬件加速確實更節能 - 根據this英特爾報告,能源使用量幾乎是沒有加速的兩倍,而且有800臺機器,有理由尋求綠色解決方案。