ffmpeg:将 mkv 转换为 mp4,并硬编码字幕

ffmpeg:将 mkv 转换为 mp4,并硬编码字幕

我不明白。我正在尝试这样做:

ffmpeg -i input.mkv -map 0:0 -map 0:2 -map 0:3 -vf subtitles=input.mkv output.mp4

但是我有这个错误:

Automatic encoder selection failed for output stream #0:2. Default encoder for format mp4 (codec none) is probably disabled. Please choose an encoder manually.
Error selecting an encoder for stream 0:2

我发现的一个解决方案是分三次进行,首先转换为 mp4:

ffmpeg -i input.mkv -vf subttles=input.mkv -map 0:0 -map 0:2 tmp.mp4

然后提取字幕:

ffmpeg -i input.mkv -map 0:s:1 subs.srt

然后在 mp4 中硬编码字幕:

ffmpeg -i tmp.mp4 -vf subtitles=subs.srt output.mp4

我想知道是否有人知道如何用 1 个命令执行此操作,或者可以解释为什么我的第一个命令不起作用。

答案1

还没有找到答案,但我可以用 2 个命令来执行:

首先提取字幕:

ffmpeg -i input.mkv -map 0:s:1 subs.srt

然后转换为带字幕的 mp4:

ffmpeg -i input.mkv -map 0:0 -map 0:2 -vf subtitles=subs.srt output.mp4

我想如果我的第一个命令不起作用,那是因为使用 mkv 作为字幕源,程序不知道我们想要使用哪个流。

相关内容