未处理 MP4 中的嵌入式字幕

我正在使用配置文件 MP4 Unprocessed 对 AVI 进行 remux,并希望在转换后的视频文件中保留嵌入式字幕。理想情况下,这不需要任何特殊选项(完整的流对流映射)。

但是,如果我在任务设置(第一步转换)中没有勾选 Extract subtitles and closed captions,且在专家设置(第二步转换)中没有勾选 Add subtitles,字幕就会全部消失(此时 ffmpeg 会使用 -sn 标志,因而忽略字幕流)。

但如果我勾选了这些设置,则会得到

  1. 将字幕流另存为单独的 SRT 文件,同时
  2. 两个相同的 sub streams 嵌入到转换后的视频文件中

所以,这显然不是“全有或全无”,而是“要么太多要么没有”…

这是否是设计如此(版本 2.5.7)?

谢谢
Rob

Thx, very helpful-

虽然我自己提到过使用 -sn 调用 ffmpeg,并且已经查看过 MP4 Unprocessed 配置文件,但我忽视了其中甚至将忽略字幕 硬编码

ffmpeg-video=-ss 0 -vcodec copy -sn

所以,我会先尝试一个仅使用标准配置但去掉 -sn 的新配置,如有需要再参考其他建议。

虽然这种方法看起来合理,但所有建议都没有帮助…

  • 仅仅从 MP4 Unprocessed 标准配置中移除 -sn 标志并没有帮助,字幕仍未嵌入。
  • 如上所述添加映射,意外导致 ffmpeg 错误重复,因为出现 Fix Audio Sync failed… 虽然配置中包含 ffmpeg-audiodelay=skip
  • 即使不使用映射,但仍保留 scodec=mov_textffmpeg-scodec=mov_text,字幕仍未嵌入。
  • 最后,使用标准的 MP4 Unprocessed 并在导出设置中勾选 Skip remuxing files,字幕仍未嵌入。

所以,我想要保留字幕,只能先重新封装(remux),然后再删除 SRT 文件,并接受字幕流会被复制的情况。

您确实可以选择限制提取哪些轨道,可以使用语言下拉列表框或 3 字母 ISO 语言标识符来指定您想要保留的音频和字幕轨道。请注意,目前在这种情况下仅限于一个语言轨道,如果有需要,我们将来也可以增加选择多种语言的功能(欢迎随时提交功能请求)。

您可以通过在 Windows 资源管理器中右键点击该文件并选择 Show Media Info with MCEBuddy 选项来检查视频文件中嵌入了哪些语言,这将打开一个窗口,显示所有视频、音频和字幕轨道的详细信息,以及视频文件中嵌入的元数据。

如果您愿意,也可以上传日志文件,我可以为您检查其中嵌入了哪些轨道及其 ISO 代码。