啟用嚴格處理時擷取closed captions失敗

隨著上週發布的「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 測試版 (beta build) 中修復。您可以試用看看,若仍遇到問題再告訴我們。

嗨,Goose。

太好了。這正是那種「沒有我的消息就是好消息」的情況。根據以往的經驗,我預計在一週內絕對會出現問題。如果這個問題再次發生,我會在這裡發文。

Steve