ffmpeg извлекает hdmv pgs субтитры из MKV в SRT

Я уже несколько дней пытаюсь понять, как извлечь субтитры hdmv pgs из файла mkv. Я, должно быть, делаю что-то не так. Я в этом новичок. Может кто-нибудь помочь? Я думаю, мне нужно установить кодировщик или установить параметр кодека, чтобы исправить проблему.

это субтитр, который я пытаюсь скопировать

Stream #0:4(eng): Subtitle: hdmv_pgs_subtitle (default)
    Metadata:
      title           : Signs / Songs
      BPS-eng         : 7215
      DURATION-eng    : 00:22:43.946000000
      NUMBER_OF_FRAMES-eng: 96
      NUMBER_OF_BYTES-eng: 1230263
      _STATISTICS_WRITING_APP-eng: mkvmerge v28.0.0 ('Voice In My Head') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2018-10-22 23:45:00
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

а команда ffmpeg, которую я использую,

ffmpeg -i "FILE PATH".mvk -map 0:4 "FILE PATH".srt

Я также пробовал

ffmpeg -i "FILE PATH".mkv -map 0:4 pgssub "FILE PATH".srt

ffmpeg -i "FILE PATH".mkv -map 0:4 hdmv_pgs_Subtitles "FILE PATH".srt

наряду с несколькими другими вариантами и всегда получаю ошибку.

  • Кодирование субтитров в настоящее время возможно только из текста в текст или из растрового изображения в растровое.
  • Невозможно найти подходящий формат вывода для 'hdmv_pgs_subtitle'
  • Неподдерживаемый кодек субтитров: dvd_subtitle
  • Не удалось найти параметры кодека для потока 4 (Subtitle: hdmv_pgs_subtitle (pgssub)): не указан размер. Рассмотрите возможность увеличения значения для параметров «проанализированная длительность» и «размер теста»
  • Не удалось записать заголовок для выходного файла №0 (неверные параметры кодека?): Недопустимый аргумент
  • или файл srt, который он создает, имеет размер 0 КБ.

Может кто-нибудь, пожалуйста, скажите мне, что я делаю не так, и покажите мне правильный код для использования. Я нахожусь на Mac, и я также попытался использовать MKVToolNix и получить странный двоичный файл, который не работает, потому что он, вероятно, в неправильном формате.


person breezybrea    schedule 19.07.2020    source источник


Ответы (1)


Насколько я понимаю, PGS - это растровые субтитры. Другими словами, это набор изображений, показывающих субтитры, которые просто помещаются поверх видео при отображении.

Между тем, SRT - это текстовые субтитры: это простой текстовый файл, содержащий текст каждой строки субтитров и время, когда эта строка должна отображаться.

Чтобы преобразовать изображения в текст, вам понадобится какое-то программное обеспечение OCR (оптического распознавания символов). Насколько мне известно, FFmpeg не поддерживает распознавание текста.

Краткий поиск в Интернете показывает, что Subtitle Edit может извлекать PGS из MKV, запускать его через OCR и сохраните результат как SRT. В Интернете есть несколько руководств по этому поводу, но если у вас есть дополнительные вопросы, они, вероятно, лучше подходят для суперпользователя.

person Chortos-2    schedule 21.08.2020