Как извлечь субтитры из MKV: найти дорожку и сохранить правильный формат
MKV может содержать несколько дорожек субтитров — или только текст, уже нарисованный в кадре. Сначала выясните устройство файла, затем извлекайте нужную дорожку. Расширение результата выбирают по её типу, а не по желаемому названию.
Проверьте, существует ли отдельная дорожка
Наличие текста на экране ещё не доказывает, что внутри MKV есть файл субтитров. Надписи могут быть отдельным потоком, который проигрыватель включает по выбору, или частью самого изображения. Во втором случае обычное извлечение дорожки не вернёт слова.
Откройте видео в проигрывателе и посмотрите список субтитров. Попробуйте отключить выбранную дорожку. Если текст остаётся, возможно, он вшит в кадр; окончательно уточните состав потоков средствами анализа файла.
Не начинайте с повторного распознавания речи. Если внутри уже есть нужная проверенная текстовая дорожка, извлечение позволяет сохранить её слова и интервалы. Но если дорожки нет, понадобится другой маршрут: распознавание речи либо текста в изображении, в зависимости от исходника.
Найдите Track ID через MKVToolNix
В составе MKVToolNix есть инструменты mkvmerge и mkvextract. Первый позволяет определить потоки, второй — извлечь выбранные данные. Для списка дорожек используется команда:
mkvmerge --identify "input.mkv"В выводе найдите субтитры и их Track ID. Если языковых дорожек несколько, дополнительно проверьте метаданные и содержание. Для подробного машинно-читаемого описания у mkvmerge есть режим JSON:
mkvmerge -J "input.mkv"Не переносите номер из примера в свой файл без проверки. Порядок дорожек у разных MKV отличается. Номер аудиопотока или визуальное место в меню проигрывателя не следует считать нужным идентификатором автоматически.
Запишите соответствие: ID, язык, тип и назначение. Например, две дорожки одного языка могут содержать полный диалог и только отдельные иноязычные реплики. Выбор по одному языковому коду не гарантирует, что вы получите полный текст.
Команда извлечения текстовой дорожки
Синтаксис mkvextract задаёт исходный файл, режим tracks и пару «идентификатор:выходной файл». В учебном примере ниже предполагается, что нужная текстовая дорожка имеет ID 2 и подходит для SRT:
mkvextract "input.mkv" tracks "2:captions.srt"Замените имя исходника, идентификатор и имя результата своими значениями. Выполняйте команду из папки с доступными инструментами или указывайте корректные пути. Если имя содержит пробелы, сохраняйте кавычки вокруг соответствующего аргумента.
Выберите новую пустую папку для результата и отдельное имя файла. Это поможет не перепутать извлечённый вариант со старой редакцией. Исходный MKV сохраните: он остаётся контрольным источником для проверки времени и языка.
После выполнения прочитайте сообщения программы. Сам факт появления файла ещё не подтверждает, что выбрана нужная дорожка. Следующий этап — открыть результат и проверить несколько реплик.
Почему результат не всегда SRT
mkvextract сохраняет текстовые S_TEXT/UTF8 как SRT, ASS и SSA — в соответствующие текстовые форматы, PGS — как SUP, VobSub — как SUB с индексом IDX. Это разные представления субтитров.
Если получили ASS, сохраните его исходную копию перед преобразованием: там могут быть стили и дополнительные параметры. Если получили графические субтитры, для текстового результата потребуется OCR с вычиткой, а не простая смена расширения.
Не выбирайте SRT только потому, что его ожидает следующая программа. Сначала извлеките данные корректно, затем выполните отдельное преобразование подходящим инструментом. Разделение этапов облегчает поиск ошибки: становится понятно, потерялось ли содержание при извлечении или при конвертации.
Особенно внимательно относитесь к сложному оформлению: надписям в разных местах кадра, выделению слов и одновременным репликам. Обычный текстовый формат может не передать визуальный замысел целиком. Для точного воспроизведения проверяйте изображение, а не только список слов.
Как проверить язык, полноту и время
Откройте извлечённую дорожку вместе с исходным видео. Сравните первую полную фразу, участок в середине и последнюю реплику. Затем проверьте сцену с несколькими говорящими или длинным предложением.
Если текст появляется только изредка, возможно, выбрана дорожка специальных реплик. Если язык правильный, но слова существенно отличаются, проверьте назначение версии: перевод, комментарий или адаптированные субтитры могут не совпадать с оригинальной речью дословно.
Не исправляйте временной сдвиг наугад. Сначала убедитесь, что сравниваете файл с тем же MKV, из которого он извлечён. Если подключили другой монтаж, расхождение может быть связано с вырезанным вступлением или дополнительными сценами.
Практический порядок подключения и проверки внешнего файла описан в руководстве по субтитрам VLC. Следите, чтобы проигрыватель не показывал одновременно старую встроенную дорожку и новый внешний файл.
Что делать с извлечённым текстом дальше
Для редактирования субтитров сохраняйте интервалы и работайте с копией. Для обычного документа экспортируйте слова без служебной структуры и восстановите смысловые абзацы. Эти действия выполняются после успешного извлечения, а не вместо него.
Если нужной дорожки внутри нет, а задача — получить произнесённую речь, используйте расшифровку видео. Вшитые надписи и звучащая речь могут различаться, поэтому заранее решите, какой источник должен отражать итоговый текст.
Перед передачей подпишите язык и версию. Сохраните рядом краткую заметку с именем исходного MKV и выбранным Track ID. Это позволит повторить извлечение и проверить происхождение файла, если позже найдётся спорная реплика.
Не удаляйте исходник сразу после первого успешного открытия SRT. Для серьёзной редакторской работы важна возможность вернуться к изображению, интонации и контексту. Текстовая дорожка передаёт только часть информации записи.
Какой результат ожидать от дорожки
Формат зависит от содержимого MKV. Не задавайте ожидание только расширением выходного файла.
| Источник | После извлечения | Следующая проверка |
|---|---|---|
| Текст UTF-8 | SRT | Слова и интервалы |
| ASS или SSA | ASS или SSA | Текст и оформление |
| PGS | SUP | Графические подписи; OCR при необходимости |
| VobSub | SUB и IDX | Сохранность пары файлов |
| Текст в самом кадре | Отдельной дорожки может не быть | Выбрать иной способ получения текста |
Чек-лист извлечения субтитров из MKV
[ ] Состав MKV проверен [ ] Нужный Track ID найден [ ] Язык и назначение дорожки понятны [ ] Выходной формат соответствует типу [ ] Исходный MKV сохранён [ ] Реплики проверены с видео [ ] Результат подписан и отделён от старых версий
Частые вопросы
Почему команда из примера извлекла не то?
Идентификатор дорожки зависит от файла. Сначала определите его для своего MKV и только затем подставляйте в команду.
Можно переименовать SUP в SRT?
Нет, переименование не превращает изображения субтитров в текст. Нужен подходящий процесс распознавания и вычитки.
Почему извлечено мало реплик?
Проверьте назначение дорожки: она может содержать только специальные фрагменты, а не полный диалог.
Что делать, если отдельной дорожки нет?
Определите нужный источник текста: звучащая речь или надписи в кадре. Затем выбирайте распознавание аудио или изображения.