我最近编码了一个带有错误字幕的 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
可以根据您自己的字幕需要删除或调整。