如何在不转码音频和视频的情况下覆盖 M4V 文件中的 SRT 字幕并删除旧字幕

如何在不转码音频和视频的情况下覆盖 M4V 文件中的 SRT 字幕并删除旧字幕

我最近编码了一个带有错误字幕的 M4V。字幕来自另一个视频,在它们被混编到的视频上下文中没有意义。

如何使用 FFmpeg 将现有/不正确的 SRT 字幕替换为正确的字幕?

答案1

在研究了几种不同的解决方案之后添加项目到现有的 M4V — 但不删除现有的字幕 — 我设法拼凑了以下命令,它对我来说很好用。它只复制视频,将字幕元数据设置为“eng”(又名:英语),并将字幕设置为默认字幕:

ffmpeg -i input.m4v -sub_charenc ISO-8859-1 -sn -i input.srt -c:s mov_text -c:v copy -c:a copy -map 0:v -map 0:a -map 1 -disposition:s:0 default -metadata:s:s:0 language=eng output.m4v

请注意,我处理的字幕不是 UTF-8;它们被编码为 ISO-8859-1,因此-sub_charenc可以根据您自己的字幕需要删除或调整。

相关内容