Можно ли преобразовать субтитры dvdsub в srt через командную строку?
Есть ли способ конвертировать субтитры dvdsub (на основе изображений) в SRT? например с mencoder или ffmpeg в сочетании с тессерактом?
Я ищу что-то на основе командной строки, и я в порядке, чтобы пройти через несколько проходов.
Я менее заинтересован в инструментах на основе графического интерфейса.
1 ответ
Вероятно, вы уже нашли решение, но поскольку это был первый результат поиска по запросу «ffmpeg ocr dvdsub srt», я использую вот такой инструмент.
https://github.com/ruediger/VobSub2SRT
Он не идеален и может потребовать некоторого редактирования.
Я пытался найти в ffmpeg функцию, которая делает это лучше, чем мой метод, но я нашел это и вспомнил о кроличьей норе, в которую мне пришлось залезть, так что я надеюсь, что это кому-то поможет.
Вот мой процесс
Для извлечения DVDSub из .mkv
Использование mkvextract из mkvtoolnix-cli
- аргумент 1 — имя файла видео, содержащего dvdsub.
- arg 2 — тип извлечения
- аргумент 3 - [Поток #, содержащий dvdsub]:[Желаемое имя извлеченных файлов].idx
В моем примере были бы созданы файлы video.idx и video.sub.
Создание субрипа из файлов .idx и .sub
Использование vobsub2srt
vobsub2srt использует tesseract, и я обнаружил, что использование устаревшего режима tesseract работает лучше всего.
- аргумент 1 — режим движка Tesseract (
для режимов) - аргумент 2 – устаревший режим
- arg 3 – имя файла ОБА .idx и .sub БЕЗ расширения.
Мой пример создал бы video.srt
Проверьте и отредактируйте субрип-файл
Ошибки, с которыми я столкнулся
- '|' вместо «I» устаревший режим Тессеракта, похоже, не часто допускает эту ошибку.
- `вместо`
- Интервал: если строка начинается с «-», между «-» и первым словом может не быть пробела.
- Отсутствующий ' & "
- «Я» или «|» вместо '[' наследие, похоже, не часто допускает эту ошибку.
Редактировать это
Если вы не знакомы с субрип-файлами, их можно просто кинуть в текстовый редактор.
grep, vim и sed — ваши друзья.
Однако большинство ошибок устаревшего режима можно легко игнорировать.
Замена dvdsub на subrip(srt)
Использование ffmpeg
- аргументы 1 и 2 — вход № 1 — видеофайл, содержащий dvdsub
- аргументы 3 и 4 — вход № 2 — файл Subrip
- arg 5 — кодек, используемый для всего потока
- аргумент 6 — копирует все потоки (копируются только видео и аудио)
- arg 7 — кодек субтитров (переопределяет аргумент 5 для субтитров)
- arg 8 — выбирает субрип в качестве кодека субтитров (может быть избыточно, но безопасно> извините)
- arg 9 и 10 — отображает видеопоток с 1-го входа на 1-й поток на выходе.
- аргументы 11 и 12 — отображает аудиопоток с 1-го входа на 2-й поток на выходе.
- аргументы 13 и 14 — отображает поток субтитров со 2-го входа на 3-й поток вывода.
- аргумент 15 — имя выходного файла
И готово, надеюсь, здесь нет ограничения на количество символов.