如何調整設定檔只保留 ENG 和 UND 字幕?

我正在使用 MCEBuddy 来自动化添加元数据、重命名和移动我的 MKV 文件,而无需进一步编码。我想更进一步,删除外语字幕。我尝试过 MKV 未处理配置文件和无转换重命名,但无法弄清楚需要进行哪些调整才能实现这一点。我艰难地阅读了文档,毫无疑问,对于在这个领域有经验的人来说,这会一目了然,所以我希望有人能可怜我并提供指导。

提前感谢。

你有試著在轉換選項頁面選擇語言嗎?這適用於字幕和音軌兩者。

我试过了,但似乎没有任何区别。我用三种方式测试了一堆文件:(1) MKV 未处理配置文件 – 默认语言,(2) MKV 未处理配置文件 – 英语,(3) 仅重命名。

我附了一张截图,原始文件用黄色高亮,你可以在文件路径里看到转换语言。

这可能无关,但为什么音轨名称里会多出“S32”或“S24”?

有没有办法把文件截取或剪成大约 5 分钟用于测试?我只有几个样本文件,每次在大文件上跑转换却失败真的很头疼。

mcebuddy.log (1.9 MB)

您可以使用我们网站上的文件分割器来切割文件。仅使用创建的第一个分块。

我需要查看该文件的转换日志,以了解发生了什么情况。

我会继续关注这个帖子。

我尝试过处理字幕,但只能算部分成功。HandBrake 的命令行确实有一个参数可以设置默认语言,它会抓取所有英语轨道,仅保留英语轨道,其余全部丢弃。如果轨道未标记语言(und),它就会抓取你指定的全部轨道(–subtitle “1,2,3,4,5”)。

整体效果不错,但 HandBrake CLI 有 bug。问题在于当文件里含有 PGS 字幕时,HandBrake 处理得并不正确:要么直接烧录进视频(输出为 mp4 时),要么设为强制字幕(输出为 mkv 时)。烧录绝对不行,而强制字幕在 Plex 里每个文件都要手动关闭,非常烦人。

最后我干脆放弃,直接传递前 5 条字幕轨道。英语字幕通常排在第一或第二,总在前 5 之内,所以能用。虽然不优雅、也不高效,但能用 :slight_smile:

已附上日誌檔案,如有需要,我也很樂意提供其他檔案。

Lord of the Rings - The Return of the King (2003).mkv-1 Unprocessed - default-2019-08-13T23-51-13.9573571-07-00.log (456.9 KB)
Lord of the Rings - The Return of the King (2003).mkv-2 Unprocessed - Eng-2019-08-13T23-49-37.7693571-07-00.log (456.9 KB)
Casino (1995).mkv-1 Unprocessed - default-2019-08-14T03-00-26.4762071-07-00.log (3.0 MB)
Casino (1995).mkv-2 Unprocessed - Eng-2019-08-14T14-37-30.6081341-07-00.log (1.9 MB)

《魔戒》——你沒有啟用字幕/隱藏式字幕提取,我也沒有看到任何字幕。其中一個你甚至沒有選擇音軌語言。

《賭城風雲 1/2》——你沒有選擇任何音軌語言,也沒有啟用字幕/隱藏式字幕提取

設定檔音訊語言 →
隱藏式字幕 →

雖然《賭城風雲 2》裡有字幕,但由於你沒有在轉換任務設定中啟用提取,因此什麼都沒有提取出來。

image

你可以试着在 handbrake-general 里加上
–subtitle-lang-list “eng”
这会自动选中第一条英语字幕,其余全部丢弃。

如果写成
–subtitle-lang-list “eng” --all-subtitles
就会保留所有英语字幕轨。也就是说,如果你有英语、英语强制、英语评论、跟唱等,它们都会被保留。

–subtitle-lang-list “eng” --subtitle “1,2”
会保留前两条英语字幕轨,通常对应英语强制和英语。

这些命令我好久没折腾了,不记得遇到 UND 时会怎样,印象中会直接跳过。我记得 PGS 字幕会搞出各种幺蛾子:有时被跳过,有时被烧录,或者被错误标记成强制等。除了 PGS 之外的其他字幕格式都工作得很好。

我不明白为什么需要提取字幕,因为我希望将它们保留在容器中。我还运行了各种版本的MKV未处理配置文件,看看有什么变化(音频设置为默认与英语、提取字幕等),但没有注意到任何区别。

我喜欢@zhulick提出的调整代码的建议。我会试试看,过几天再汇报。祝我好运!

這就是 MCEBuddy 的運作方式。並非所有格式及其底層編碼器都支援所有功能,因此它採用兩步驟流程:先提取所有片段,再依所需格式重新組合。詳情請參閱「MCEBuddy 運作原理」頁面。

若要在轉換任務的「專家設定」頁面中,將其加回最終輸出容器,請勾選 Add subtitles 方塊。

在我試著搞清楚狀況的過程中,我確定我把某些東西弄壞了。我想複製所有的視訊、音訊與字幕串流,不做任何重新編碼,同時重新命名檔案並嵌入海報與詮釋資料。只有當我選擇「重新命名但不轉檔」時,才能保留所有串流,但這樣就無法嵌入詮釋資料與海報。我要怎麼才能保留所有串流,同時嵌入海報與詮釋資料?

Guardians of the Galaxy Vol. 2 (2017).mkv-MKV Cleanup-2019-08-23T20-07-05.6402831-07-00.log (59.6 KB)

我敢肯定“重命名而不转换”就是字面意思——它只会重命名并复制文件,不会动文件里的任何内容。当你需要把一堆 DVR 录制文件快速重命名成 Plex 能识别的格式时,这个功能非常实用,但我并不确定它能不能满足你的需求。

事实上,我觉得在 mcebuddy 里,如果不想让程序对文件做任何处理,就实现不了你想要的效果。虽然不敢百分百保证,但即使只是追加元数据和海报信息,似乎也需要把 mkv 重新封装/重建一次。

你可以试试在命令行里用 -copy-copy-mask 命令,让音视频全部直通。你需要指定所有想直通的格式,这样应该能骗过 mcebuddy,让它把现有流重新封装成一个新文件,尽管实际上没有任何流被改动。在这个过程中,它应该就能写入元数据了。不过,我可没试过到底行不行,理论上应该可以,但…… :slight_smile:

1個讚

有些地方说不通……“重命名而不转换”这个选项暗示我们应该可以添加元数据。我还找到了这篇帖子:如何自动将 MKV 转换为 MP4 并保留字幕和章节,里面明确说明字幕是可以保留的。

我正在搭建离线观看的 Plex 电影库,但它的元数据功能时好时坏。有天我出门时,它把《A Simple Favor (2018)》显示成了《Madagascar (2005)》。我想搞个万无一失的方案,可我现在觉得自己才像个傻瓜。

希望 Goose 能给我点启发,并提供一个解决办法。

好消息是,看来我之前用的样本文件损坏了,才导致各种问题。我明天再测试几次,希望能把这事搞定。

是的,確實如此。事實上,MCEBuddy 現在支援多個字幕軌,即使在一般轉換模式(即非僅重新命名模式)下,也能全部擷取與嵌入。

然而,在你的情況下,你的設定檔無效,因此 MCEBuddy 無法繼續:

ERROR> 2019-08-23T20:07:09 MCEBuddy.Engine.ConversionJob → Unhanded error during conversion, conversion cancelled
System.Exception: Invalid profile, order is empty
at MCEBuddy.Transcode.Convert.GetConversionExtension(ConversionJobOptions conversionOptions)
at MCEBuddy.Engine.ConversionJob.GetDestinationFilename(ConversionJobOptions conversionOptions, VideoMetaData metaData, String originalFileName, Log jobLog)
at MCEBuddy.Engine.ConversionJob.Convert()
INFORMATION> 2019-08-23T20:07:09 MCEBuddy.Engine.ConversionJob →

我還注意到你的設定檔名稱是 *MKV Unprocessed*,不知道為什麼名稱裡會有 *,也不清楚實際的設定檔內容,但似乎缺少了 order= 指令。