3

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

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

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

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

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

4

2 回答 2

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

所以,简而言之,设置

  • 性能设置
  • 使用VMR
  • 使用VMROverlay
  • 用户RGB
  • 使用YUV
  • DVD使用VMR
  • DVD使用VMR覆盖
  • DVD使用VMRFSMS
  • DVD使用SW解码器

为0,并设置

  • 使用FullScrMS
  • DontUseFrameInterpolation

为 1。

于 2010-05-29T00:39:43.293 回答
0

看来你不是唯一一个遇到这个问题的人。这是博客的链接 - 作者通过降低硬件加速级别来解决他的问题。使用 REG 脚本在 Media Player 9、10 和 11 上进行了测试,以设置适当的设置。

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

除了应用此修复程序外,您还可以检查受影响的机器是否具有最新的驱动程序和编解码器版本。最后,如果可能,您可以考虑将内容重新编码为不会产生显示问题的格式(如果错误与编解码器相关。)

使用硬件加速当然更节能 - 根据这份英特尔报告,在没有加速的情况下使用的能源几乎是两倍,而且由于有 800 台机器,因此有理由寻求绿色解决方案。

于 2010-05-29T06:11:53.347 回答