启用严格处理时提取隐藏字幕失败

随着上周发布的新版本和“MKV HEVC”配置文件,我现在看到转换失败,并提示错误:
“提取隐藏字幕失败”

这些录制内容本身并没有隐藏字幕。但在之前的版本中,缺少隐藏字幕并不会导致转换失败。我知道这次版本对字幕/隐藏字幕部分做了改动。请问这是设计上的意图——即如果没有隐藏字幕,转换就应该失败吗?如果是这样,我可以为那些没有字幕的剧集单独创建一个配置文件。我只是想确认这是设计行为,还是一个 bug?

谢谢。

基于 MCEBuddy 的近期更改(大约从 2.6.2 版本开始),其字幕和隐藏式字幕(closed caption)引擎经过了重新设计,变得更加“简单”且高度自动化。

在旧版本中,逻辑通常更加宽容。然而,最近的更新改变了 “保存字幕”(Save subtitles)“嵌入字幕”(Embed subtitles)(以前称为“提取字幕和隐藏式字幕”以及“添加字幕”)的交互方式。

这是 Bug 还是预期设计?

这似乎是引擎在处理没有字幕流的文件时的一个 Bug 或回归问题。虽然预期的设计是自动化提取,但如果源文件本身不包含字幕流,它不应该将缺失的字幕流视为致命的处理错误。

潜在原因与故障排除

  1. CCExtractor 敏感性: MCEBuddy 在此过程中使用 CCExtractor。如果您的配置文件明确要求进行字幕提取,但由于未找到字幕流而返回了非零退出代码(失败),MCEBuddy 可能会将其解释为任务失败。
  2. 配置文件“强制”设置: 检查 profiles.conf 中的 MKV HEVC 配置文件。如果存在强制执行字幕处理的命令行参数或设置,可能会导致程序强制中止。

建议的解决方法

  • 禁用字幕选项: 在“转换任务”(Conversion Task)设置中,尝试取消勾选 “保存字幕”“嵌入字幕”。如果转换随后成功,则可以确认引擎是因为期望获取并不存在的字幕流而失败。
  • 自定义配置文件: 正如您所提到的,为已知没有字幕的系列创建特定配置文件是一种有效的解决方法,但您也可以尝试在特定配置文件的 profiles.conf 中添加 cc_stop_on_error=false(如果在您当前版本的专家设置中可用),以查看是否允许该进程继续。
  • 检查日志: 要确认具体失败原因,请查看转换日志中“提取隐藏式字幕失败”(Extracting closed captions failed)消息前的一行。它通常会显示正在运行的确切命令行以及子进程返回的错误代码。

我建议在本主题中上传一份您的转换日志副本。开发人员(例如 @Goose)通常会查看这些日志,以确定是否需要在代码中将某个特定的“检查”设为可选。

这是一个日志示例。

elsbeth - s03e12 - All’s Hair.mp4-PlayOnHome - NO Comskip-2026-03-06T12-10-28.log(611.3 KB)

感谢您提供该日志文件,@SJL

查看您关于 Elsbeth - S03E12 的日志,我可以清楚地看到故障发生在哪里:

2026-03-06T12:10:45 --> Extracting closed captions from C:\Users\SJL\AppData\Local\Temp\MCEBuddy\Working\elsbeth - s03e12 - All’s Hair.mp4
2026-03-06T12:10:46 --> CCExtractor failed to find any subtitles/closed captions in source file.
2026-03-06T12:10:46 ERROR> 2026-03-06T12:10:46 --> Extracting closed captions failed

分析

看来您的直觉是正确的:这是近期字幕引擎重新设计中的一个错误/回归(bug/regression)

在最新版本(从 2.6.2 测试版分支开始)中,MCEBuddy 更新了字幕处理的“简化”逻辑,当勾选了 “保存字幕”(Save subtitles)“嵌入字幕”(Embed subtitles) 时,将字幕提取设为默认的必要前提。然而,目前的逻辑却将 CCExtractor 返回的“未找到字幕”结果视为整个转换任务的致命错误,而不是仅仅跳过字幕步骤并继续进行视频编码。

结论

  • 这是设计使然吗? 不是。MCEBuddy 旨在成为一款自动化的“设置后无需管”的工具;

感谢您报告此问题。是的,这似乎是一个与“严格处理”相关的错误,当找不到字幕时就会出现。通常,如果字幕提取失败,MCEBuddy 会继续进行转换。启用“严格处理”后,任何微小的失败都会导致转换失败。理想情况下,如果一开始就没有字幕,就不应该失败。

我在您的日志中看到您已启用严格处理。

严格处理 → True

目前,请暂时禁用“转换任务 → 专家设置 → 严格处理”,直到我们发布修复程序。

感谢您的反馈,该问题已在今天的 2.7.2 测试版构建中修复。您可以试用一下,如果仍有问题请随时告知我们。

嗨,Goose。

太好了。这种情况属于“没有我的消息就是好消息”。根据以往的经验,我绝对预计在一周内会遇到问题。如果这个问题再次出现,我会发帖告知。

Steve