将 MKV 文件中基于图像的字幕转换为基于文本的字幕

将 MKV 文件中基于图像的字幕转换为基于文本的字幕

如何将 MKV 文件中的 hdmv_pgs_subtitle(基于图像)转换为基于文本的字幕?

我已经尝试过ffmpeg -i in.mkv -c:v copy -c:a copy -c:s mov_text out.mkv,但结果出现以下错误:

Stream mapping:
  Stream #0:0 -> #0:0 (copy)  
  Stream #0:1 -> #0:1 (copy)  
  Stream #0:2 -> #0:2 (hdmv_pgs_subtitle (pgssub) -> mov_text (native))  

Error while opening encoder for output stream #0:2 - maybe incorrect > parameters such as bit_rate, rate, width or height

答案1

将基于图像的字幕转换为文本是一个不平凡的过程,因为您将需要某种 OCR 系统来解释位图并找出相应的文本是什么。ffmpeg独自一人不会为你做到这一点。

我不知道有哪个应用程序可以在 Linux/UNIX 上一次性完成整个过程。但是,这个过程应该有效:

  • mkvextract使用或提取字幕ffmpeg
  • 将 PGS 字幕转换为 DVD SUB 格式BDSup2Sub
  • 将字幕 OCR 转换为 SRT 格式VobSub2SRT
  • mkvmerge使用或将字幕混合回 mkv 文件ffmpeg

答案2

似乎也可以作为在线工具,但如果有队列,你必须等待一段时间。

要提取字幕文件,你可以使用以下命令:

ffmpeg -i input.mkv -c copy -map 0:2 sub.sup

相关内容