我已经开始使用 Windows 7 RC1 版本,我注意到在安装 Windows 7 后,它在播放视频时不使用 ffdshow。我把问题缩小到这样一个事实:如果有新的 Windows Media Foundation,Windows 7 更喜欢使用 DirectShow 过滤器。
我遇到的问题是 H.264 Windows Media Foundation 解码器对我来说很卡顿,我更喜欢使用 ffdshow 的解码器。
有人知道如何“强制” Windows 7 使用 DirectShow 过滤器而不是 Windows Media Foundation 过滤器吗?
谢谢
答案1
答案2
DirectShow 和 Media Foundation 是 API,应用程序是针对其中一个 API 构建的,或者针对具有硬编码优先级的两个 API 构建的,或者针对用户选择/配置的 API 构建的。只有在最后一种情况下,您才可以选择在 API 之间切换。也就是说,您的解决方法是选择可以设置为使用特定感兴趣的编解码器的应用程序。
您所指的 Windows 7 上的更改是系统优先考虑原装 H.264 解码器。虽然在大多数情况下,编解码器会相互争斗,以通过注册更高的优点来获得青睐,但 Windows 7 通过无条件地将原装解码器置于其首位来制止这种争斗。
除此之外,如果您使用的是 Windows Media Player,它会尝试使用 Media Foundation 播放,如果这次尝试失败,则将再次尝试使用 DirectShow。因此,您必须破坏 Media Foundation API/组件,使其无法使用,才能让 WMP 转到 DirectShow 进行 H.264 播放。我当然不推荐这样做,另一个更合适的播放器才是合适的替代选择。