VLC 将性能缓慢归咎于 Windows 11 漏洞,捍卫开源并点名微软
VLC 将 Windows 11 上 33 秒的启动延迟归咎于 Microsoft Defender 的 bug 在一些 Windows 电脑上,VLC 播放一首 MP3 可能需要 33 秒才能开始,而这款开源媒体播放器背后的开发者 VideoLAN 表示,罪魁祸首是 Microsoft Defender 的一个 bug。
《Braid》和《The Witness》的游戏设计师兼程序员 Jonathan Blow 说,他终于从 VLC 换成了微软的 Media Player,因为前者已经变得慢得令人难受,随后借机表示,“开源软件中的很大一部分如今处在一个非常尴尬的境地。”

VideoLAN 当然不会坐视这番批评,转而指责微软,称 Windows 11 的 Defender 更新干扰了 VLC 的插件缓存。不过,我们查看了 VLC 的 bug 报告,发现有几位 Windows 10 和 Windows 11 用户描述了同样的启动问题。

VLC 认为 33 秒延迟是 Microsoft Defender 导致的
请注意,这里的批评对象是 MP3 文件,而不是视频——后者通常才是 VLC 的主场。我早就把灵魂卖给了 Spotify 之类的流媒体服务,尽管几乎隔天就会用一次 VLC,但并没有遇到过这种延迟。
不过,对于那些用 VLC 听音乐、并且确实遇到 33 秒延迟的人来说,所谓原因是 VLC 的插件缓存。
那 VLC 为什么一开始就需要插件缓存?
这是 Blow 追问 VLC 的问题,我也很感兴趣,因为一个媒体播放器为什么光是播放一首 MP3 就需要缓存?

事实证明,VLC 几乎完全由插件构成,编解码器、解复用器、输入和输出模块都会按需加载,而不是直接写进一个二进制文件里。这些内容都列在一个名为 plugins.dat 的文件中。
缓存的存在是为了避免每次打开媒体文件时都重新扫描整个插件文件夹。这种设计本身很合理,但一旦有东西——无论是 Defender 还是别的什么——挡在 VLC 和这个文件之间,它就会变成单点故障。
VLC 还包含 vlc-cache-gen.exe,可以重新生成缓存;据该组织称,执行此操作或重新安装 VLC 都应该能解决问题。

不过问题在于,我没有只听任一方的一面之词,而是去翻了 VLC 的公开问题跟踪器,结果发现情况远没有那么简单。
VLC 的 bug 报告表明,这不只是 Windows 11 的问题
Windows 上 VLC 启动缓慢并不新鲜。关于这个问题的论坛帖子可以追溯到一年前甚至更久。一个 Windows 10 用户描述称,启动会延迟 24 秒,而且 VLC 一旦打开过一次,延迟就会消失;但电脑闲置一段时间后又会回来。
在 VLC 的跟踪器中,一位用户说,替换一个 Qt 插件并没有解决问题,但重新生成 plugins.dat 后就好了。另一位运行 Ryzen 9 9800X3D 和 32GB DDR5 的 Windows 11 用户——这台机器显然不该连打开 MP3 都吃力——也表示刷新缓存同样解决了问题。多位用户都证实他们机器上也能通过这个方法解决。
不过,最初的 bug 提交者对“重新生成缓存”这个说法并不认同。他说,在他受影响的两台机器上,plugins.dat 本来就已经存在,而当他换入一个已知正常的缓存文件后,启动延迟就消失了。这和“缓存缺失”是明显不同的故障模式,也正因如此,VLC 的维护者才重新打开了这个问题,并继续追查缓存与 Windows Defender 是如何交互的。

后来,一位 VLC 开发者最终得出了与 VideoLAN 推文相同的结论:无论插件缓存处于什么状态,变慢的原因看起来都是 Windows Defender。另一位开发者之前把整个问题标记为“已修复”,因为重新生成缓存似乎对他有效。两种说法对不同用户来说都没错。有些人发现,把整个 VLC 文件夹从 Defender 中排除有效,而只排除 vlc.exe 却不行,这说明 Defender 确实在其中发挥了作用,只是目前还没人完全搞清楚具体机制。
所以,不,这不是编出来的借口。但它也不是社交媒体上被简单粗暴地概括成“微软搞坏了开源软件”的那个结论。
Windows 上 VLC 启动很慢时该怎么修复
如果 VLC 突然要 10 秒、20 秒甚至 30 秒才能打开,不妨先试试下面这些步骤,再去考虑禁用 Microsoft Defender:
- 在 VLC 安装目录中使用 vlc-cache-gen.exe 重新生成插件缓存,目标指向 plugins 目录。
- 使用官方安装程序重新安装 VLC,让插件缓存再次生成。
不少用户表示,重新生成缓存可以解决问题;也有人发现,把 VLC 文件夹排除在外后,启动就恢复正常。不同人的结果并不相同,这也是为什么不能把某一种临时解决方案当作通用办法。
把开源叫作尴尬,多少有点过于轻松了
Blow 说在现代电脑上等半分钟才能播放一首 MP3,这点并没错。让我不认同的是,他把一个 bug 上升成了对整个开源软件类别的定性判断。VLC 确实存在一个实实在在的缓存问题,它自己的开发者也还在处理,而 VideoLAN 也确实拿出了指向 Defender 的证据。

不过,Blow 换用的播放器也有些讽刺。Windows Latest 早就评测过微软的 Media Player,发现它是更慢、更臃肿的选择:打开视频所需时间明显比 VLC 更长,闲置时大约占用 377MB 内存,而且在 HEVC 之类的格式上仍然会卡住,而 VLC 则能轻松打开。

无论如何,VLC 都得设法绕过 Windows 丢给它的各种问题,尤其是在它并不是市面上唯一一款优秀媒体播放器的情况下。
如果你想要更快的开源播放器,可以试试 mpv
我们不会因为这个 bug 就建议所有人都放弃 VLC,尤其是我本人至今仍在使用它。不过,如果你已经在寻找更轻量的替代品,mpv 值得一试。

mpv 是一款免费开源的媒体播放器,界面刻意做得非常简洁,并且高度注重性能和灵活性。它对新手来说不如 VLC 友好,界面也需要时间适应,但这种简洁本身也是它的吸引力之一。
对大多数人来说,VLC 仍然是更容易推荐的选择,因为它提供了熟悉的界面,并把几乎所有播放选项都集中在一处。但如果播放一首 MP3 就要等 33 秒,任何 Windows 用户都不该被责怪去试试别的东西。