如何以编程方式关闭视频加速

时间:2010-05-26 12:47:56

标签: vb.net windows-media-player

我在数百台计算机(专用)上运行的程序中使用Windows Media Player OCX。

我发现当视频加速打开到“已满”时,在某些计算机上会导致视频无法正常播放,电影之间会出现绿色方块,等等。将加速度转为“无”,一切都很好。

该程序在大约800台计算机上运行,​​这些计算机将自动更新我的程序。所以我想在我的程序中添加启动功能,它会关闭视频加速。

问题是,如何以编程方式关闭视频加速?

所有计算机都运行XP,至少运行第二个服务包。 我需要花费很长时间才能手动登录所有这些计算机并更改该设置,这就是为什么我希望程序能够自动为我执行此操作。

2 个答案:

答案 0 :(得分: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。

答案 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台机器,因此有理由寻求绿色解决方案。 / p>