Windows Media Player 不显示字幕怎么办?
1 现象描述
- 使用 Windows 10 内置的 Windows Media Player 播放 MP4 文件时,无法显示 SRT 格式的外挂字幕。
- 使用 Windows 10 内置的 Windows Media Player 播放 MKV 文件时,无法显示内嵌字幕。
2 原因分析
Windows Media Player 原生不支持 SRT 格式的外挂字幕。
Windows 7 以上的 Windows Media Player 播放 MP4、MKV 文件时,默认调用微软自家的 Media Foundation (MF)来解码,MF 原生不支持 MKV 的内嵌字幕。
Windows Media Player 最早原生支持 SMI 格式的外挂字幕,Windows 10 内置的 Windows Media Player 又追加了对 ASS、SSA、ART 格式的支持,但是只有 AVI 和 MOV 两种格式的视频才能关联字幕。
3 解决方案:第三方工具
这样,将 ASS、SRT 等格式的字幕转换为 SMI 字幕就不可行了,因为 Windows Media Player 不能为 AVI 和 MOV 格式之外的视频自动关联字幕。
比较可行的方法,是用第三方工具,关闭或者绕开 Media Foundation。
3.1 K-Lite Codec Pack
3.1.1 关闭 Media Foundation
操作步骤:
-
安装 K-Lite Codec Pack,运行 Codec Tweak Tool。
-
在主界面点击 Various Tweaks 按钮。
-
取消勾选 Use 64-bit WMP instead of the default 32-bit version。点击 Apply & Close。
-
回到主界面,再点击 Media Foundation 按钮。
-
在左边的 Media Foundation (32-bit) 中,勾选 .mkv 和 .mp4,点击 Apply & Close。
-
最后退出 Codec Tweak Tool。
以上操作是强制系统调用 32 位的 Windows Media Player,并且禁止 32 位的 Media Foundation 框架来解码 MKV 和 MP4 格式视频。这样,Windows Media Player 就会调用 Codec Tweak Tool 安装的分离器和解码器来处理视频,就可以正常地显示外挂字幕或内嵌字幕了。64 位的 Windows Media Player 和 64 位的 Media Foundation 不受影响。
注意:
-
不要在 Media Foundation (64-bit) 中,勾选 .mkv 和 .mp4,否则,64 位的微软 Edge 浏览器可能无法播放在线视频,而且有些 64 位的游戏在播放过场动画视频时也会出错。
-
如果有些 32 位的游戏在播放过场动画视频时出错,那就临时在 Media Foundation (32-bit) 中,勾选 .mkv 和 .mp4。临时启用 Media Foundation。打完游戏再禁用。
3.1.2 绕开 Media Foundation
操作步骤:安装 K-Lite Codec Pack 以后,直接把视频文件的扩展名改成 .video。
K-Lite Codec Pack 会把扩展名为 video 的文件关联到 Windows Media Player(或者用户指定的其他播放器,例如 MPC-HC),并且强制 Windows Media Player 调用 DirectShow 来处理视频,这样,Windows Media Player 就可以正常地显示外挂字幕或内嵌字幕了。
3.2 Shark007 Advanced Codecs
在设置里“disable media foundation for mkv”。
4 讨论
为什么用古老陈旧的 Windows Media Player?因为它的“媒体库”功能配合 Windows 的“库”,管理影音文件相当方便;而且它可以通过 DLNA 协议投屏到局域网中的电视盒子之类的设备;还可以让移动设备通过“媒体流”功能访问媒体库中的影音。
5 图片版权
题图:自制。
6 参考资料
![](/img/zhi-fu-bao-shou-kuan-ma.png)
![](/img/wei-xin-zan-shang-ma.png)