Как преобразовать hdmv_pgs_subtitle (основанный на изображении) в текстовые субтитры в файле MKV?
Я попробовал 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
- Скомпилируйте субтитры обратно в файл mkv с помощью
mkvmerge
илиffmpeg
решение2
Этотпохоже, что это также работает как онлайн-инструмент, но вам придется немного подождать, если есть очередь.
Чтобы извлечь файл субтитров, вы можете использовать это:
ffmpeg -i input.mkv -c copy -map 0:2 sub.sup