我不明白。我正在尝试这样做:
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 作为字幕源,程序不知道我们想要使用哪个流。