如何使用 ffmpeg 将 .mkv 文件中的 dvd_subtitles 提取到单独的文件(例如 .sub 或 .idx)中?或者两者都提取?
谢谢你的帮助/建议。
答案1
目前看来还不可能:
FFmpeg 错误跟踪器:#2391 - VobSub 复用器。
现在您可以做的ffmpeg
就是重新混合为 MKV 或 VOB:
ffmpeg -i input.vob -map 0:s -c copy output.mkv
答案2
我会对此发表意见,因为其他人可能对标记为 的字幕有疑问dvd_subtitle
。
我一直在使用 ffmpeg 转换使用 Makemkv 翻录的文件并对其进行转码以调整大小。所有字幕都输出为dvd_subtitle
无法提取的字幕。我所做的有点混乱,但它允许我将SUBRIP
字幕添加到输出文件中。我刚刚编写了此文件,它不支持多个.srt
文件。我希望让它更强大,以便提取和插入SUBRIP
所有存在的字幕。
我还没有找到为什么 ffmpeg 要将SUBRIP
字幕转换为这个格式的答案dvd_subtitle
,但它把事情搞得一团糟。我发现我的电视不能将字幕显示得非常大,但SUBRIP
可以正常显示。
首先,我从源视频中提取字幕:
ffmpeg -i %FILE% %FILE%TEMPSUBTITLE$$.srt
其次,我复制了没有字幕的视频:
ffmpeg -i %FILE% -c copy -sn %FILE%TEMPVIDEO$$.MKV
最后我重新编码我的文件并添加回 SRT 文件:
ffmpeg.exe -analyzeduration 100M -probesize 100M -i TEMPVIDEO$$.MKV -f srt -i TEMPSUBTITLE$$.SRT %GPUENCODE% -vf scale=1920x1080 -crf 30 -c:s copy -c:v libx264 -codec:a aac -rc-lookahead 8 -bf 8 %FILE%.conv.mkv
答案3
ffmpeg
将把基于图像的字幕提取到独立文件中。例如,其中第三个流是file.mkv
...中的字幕
前列腺增生 ( .pgs
):
ffmpeg -i file.mkv -map 0:2 -c:s:0 copy sub.pgs
VobSub(.vob
):
ffmpeg -i file.mkv -map 0:2 -c:s:0 copy sub.vob
您可以使用诸如SubtitleEdit
对独立的基于图像的字幕文件执行 OCR 的程序,并将结果导出为基于文本的格式,例如 SRT(.srt
)。