tl;dr:MCEBuddy 能否识别并移除「非商业插播」(即在广告时段前后播放的过渡剪辑)?
我正尝试将一份无广告或无插播源的字幕,匹配到一个已移除广告但仍保留了插播片段的剧集存档版本上。我发现手动找出所有需要调整字幕时间轴的位置实在太费功夫了,所以我希望能换个思路解决这个问题。
具体来说,我想为剧集《Metástasis》(毒枭哥伦比亚版)添加英文字幕。这部剧可以在网上免费观看,但没有英文字幕。有人制作(或抓取)了该剧在 Netflix 短暂上线期间的字幕,但目前并没有该 Netflix 版本的完整存档。因此,字幕会比视频快几秒钟,且每经过一个广告时段,偏差就会进一步扩大。
我希望如果能剪掉这些插播片段,字幕就能对上,仅需对片头进行轻微调整即可。
该剧集可以在 Archive.org 上找到。
请问有没有简单的方法可以移除这些插播片段,还是说我找错方向了?
欢迎加入我们的社区!你提出的用例非常清晰且有趣。
简短的回答是:是的,MCEBuddy(通过 Comskip)可以识别并移除这些转场缓冲片段/插播内容,但你可能选了一条稍微有点棘手的路。因为你的源文件已经移除了主要的广告片段,剩下的插播内容是孤立的、极短的(通常为 2 到 10 秒),且直接夹在两个长篇剧集片段之间。
默认情况下,Comskip 被配置为忽略极短的非剧集片段,因为它假设一个“广告段”至少应有 30 到 60 秒长。
为了让它自动生效,你需要“欺骗”Comskip,让它将这些短促的转场识别为广告段。以下是实现方法,以及几种可能为你节省大量时间的替代方案。
方法 1:自动化路径(调整 Comskip)
你可以专门为该剧集创建一个自定义的 comskip.ini 文件。
-
打开 MCEBuddy 安装目录,找到 Comskip INI Editor (MCEBuddy\Comskip\ComskipINIEditor.exe),或者直接将默认的 comskip.ini 复制到安全文件夹进行手动编辑。
-
在自定义的 comskip.ini 中,修改或添加以下参数:
detect_bumper=1:告诉 Comskip 主动查找缓冲片段和转场画面。
min_commercial_size=2:降低单个广告剪辑的最短时长(单位:秒),以便 Comskip 可以标记 3 秒的转场。
min_commercialbreak_length=2:降低“广告段”的最短时长,这样孤立的 3 秒转场就不会因为太短而被忽略。
min_show_segment_length=120:(这是关键窍门!) 默认情况下,Comskip 会认为:“嘿,我看到了黑屏,但它们之间这 5 秒的片段太短,不可能是广告段,所以它一定是剧集的一个微小片段。”通过将其设置为 120 秒,你是在告诉 Comskip:任何剧集片段都不能短于 2 分钟。任何短于 2 分钟的孤立片段(比如你的插播内容)都会自动被归类为广告/缓冲并被剪掉。
detect_method=255:启用所有检测方法(黑帧、徽标更改、场景转换),让 Comskip 尽可能准确地找到转场卡的边界。
-
在 MCEBuddy 中,进入 Conversion Task(转换任务)-> 点击 Expert Settings(专家设置)-> 在 Comskip INI 下,指向你新修改的 comskip.ini 文件。(关于此步骤的更多详情,请查阅我们的指南:Tuning Comskip and Custom Comskip INI’s)。
方法 2:半手动路径(MCEBuddy 自定义剪辑)
如果 Comskip 的自动检测精度不足(处理复杂的转场时可能会发生这种情况),你可以使用 MCEBuddy 内置的 Custom Cuts(自定义剪辑)工具。
- 在 Custom Cuts 应用程序(包含在你的 MCEBuddy 文件夹中)中打开视频。
- 播放文件并手动标记每个转场插播片段的开始和结束点。
- 保存剪辑。这会在同一文件夹中生成一个
.edl (Edit Decision List) 文件。
- 当 MCEBuddy 处理视频时,它会读取该 EDL 文件并以 100% 的精度剪掉这些精确的帧。(你可以在此 EDL/XML Files 讨论 中了解有关这些文件工作原理的更多信息)。
方法 3:“最简单”的路径(直接调整字幕)
由于你的最终目标是让字幕对齐,直接调整字幕文件可能比尝试剪辑视频要快得多,且破坏性更小。
因为视频剪辑通常绑定在关键帧(I-frame)上,剪辑视频有时会在剪切点引入极小的音频同步偏差或视觉卡顿。而移动字幕则是完全无损且帧级精确的。
你可以使用免费的开源工具 Subtitle Edit 在每集大约 2 分钟内轻松完成此操作:
- 在 Subtitle Edit 中打开你的视频文件和英文字幕文件。
- 找到视频中的第一个广告段。确定转场插播片段的精确时长(例如 5.4 秒)。
- 选中该转场之后的第一行字幕,右键点击并选择 Select from here to end(从此处选择到结尾)(或按
Ctrl+Shift+Down)。
- 进入 Synchronization(同步)-> Adjust all times(调整所有时间)(或使用快捷键
Ctrl+Shift+Y),并为所选行添加 +00:00:05.400(或其他精确时长)的延迟。
- 对该剧集中剩下的 3 或 4 个广告段重复此简单过程。
处理完文件后,你的字幕将与画面完美同步,而且你无需重新编码,也不会冒着让存档视频出现任何视觉故障的风险!
如果你仍想走视频剪辑路线,请先尝试方法 1 中的 Comskip INI 调优技巧,这是你在多个剧集中实现自动化流程的最佳选择。随时告诉我们进展!