Как преобразовать TTML и DFXP в SRT: время, текст и потеря оформления
TTML описывает не только слова и время, но и способы размещения текста. При переносе в простой SRT часть информации не сохраняется. Важно заранее решить, какие свойства действительно нужны результату.
Когда нужна конвертация
Преобразование полезно, если следующий редактор или плеер принимает SRT, но не читает имеющийся TTML. Сначала проверьте требования целевого инструмента: возможно, исходный формат можно использовать напрямую.
TTML — формат синхронизированного текста с XML-структурой. DFXP часто встречается в том же рабочем процессе; например, YouTube интерпретирует DFXP как TTML. Одно расширение .xml при этом ещё не доказывает, что перед вами субтитры.
Определите, что нужно сохранить: речь, время, разделение говорящих, экранные надписи и положение текста. Если смысл зависит от разных областей экрана, простой перенос в последовательные строки может потребовать ручной адаптации.
Оставьте исходный файл нетронутым. SRT стоит создавать как отдельную производную версию, чтобы можно было вернуться к структуре оригинала.
Почему нельзя просто удалить XML-теги
В TTML время может задаваться атрибутами begin, end и dur. Спецификация также предусматривает разные способы записи времени и параметры, влияющие на его интерпретацию. Поэтому удаление тегов оставит слова, но потеряет сведения о показе.
Учебный фрагмент простой реплики:
<p begin="00:00:03.000" end="00:00:06.500">
Проверьте настройки записи.
</p>В SRT эта отдельная реплика может выглядеть так:
1
00:00:03,000 --> 00:00:06,500
Проверьте настройки записи.Пример показывает только простой случай с явными началом и концом. Он не является универсальной формулой обработки всех TTML-файлов. Для сложного документа используйте полноценный разбор формата редактором.
Откройте исходник в Subtitle Edit
Subtitle Edit перечисляет Timed Text среди поддерживаемых форматов. Откройте файл и проверьте, что появились отдельные реплики с осмысленными интервалами.
Посмотрите на первые строки, место с несколькими одновременно видимыми элементами и конец. Если весь документ превратился в одну подпись или время явно не соответствует ролику, не сохраняйте результат как готовый.
Выберите Save as и SubRip, сохраните SRT отдельно в UTF-8. После этого заново откройте сохранённый файл. Так проверяется именно результат записи на диск.
Если редактор не распознаёт конкретный профиль, уточните формат у автора файла или используйте поддерживающий его инструмент. Изменение расширения на .srt не устраняет несовместимость.
Проверьте, что потерялось в оформлении
Сравните расположение подписей. В оригинале реплики и экранный текст могли быть разведены по разным областям. В обычном SRT они могут оказаться в одном месте и начать мешать друг другу.
Проверьте смысловые различия, которые были переданы цветом или стилем. Если без них непонятно, кто говорит, потребуется текстовое обозначение либо другой формат результата.
Переносы строк оценивайте по чтению, а не по совпадению с XML. Граница внутри имени, числа с единицей измерения или короткого устойчивого сочетания ухудшает понимание.
Похожая проблема возникает при переносе ASS в SRT: сохранённые слова не означают сохранение всего оформления.
Сравните время и одновременные реплики
Подключите новый SRT к соответствующему видео. Проверьте начало, середину и конец, а также места с несколькими надписями одновременно. В таких участках важен порядок и читаемость, а не только число блоков.
Если время расходится постепенно, проверьте исходные параметры и версию ролика. Не исправляйте всё одним случайным сдвигом: он может скрыть ошибку в начале и усилить её в конце.
Если после преобразования изменилось число блоков, выясните причину. Редактор мог иначе представить вложенные элементы или разделить сложную реплику. Сравнивайте содержание и интервалы, а не требуйте механического равенства без анализа.
Для проверки используйте воспроизведение SRT с видео в VLC. Финальный просмотр должен происходить там, где дорожка будет использоваться.
Сохраните понятную финальную версию
Укажите в имени язык и монтажную версию. В рабочей папке держите исходный TTML/DFXP и проверенный SRT раздельно. Это поможет повторить преобразование, если требования получателя изменятся.
Запишите заметные изменения: потерянное размещение, ручное объединение одновременных строк или добавленные подписи говорящих. Получатель должен понимать, что это адаптированный результат.
Если задача — получить речь из видео без субтитров, конвертация форматов не поможет. Сначала нужна расшифровка записи, затем вычитка и подготовка дорожки.
Перед передачей откройте итоговый файл и проверьте последнюю реплику. Успешное сохранение не заменяет проверки полноты, особенно когда исходник сложнее целевого формата.
Что проверить при упрощении формата
Не все свойства исходника имеют прямой аналог в SRT.
| Свойство | Риск переноса | Проверка |
|---|---|---|
| Текст | Потеря вложенных фрагментов | Сравнить полные фразы |
| Время | Неверная интерпретация | Сверить с видео |
| Размещение | Слияние областей | Проверить одновременные надписи |
| Стиль | Потеря смыслового различия | Добавить ясное обозначение |
| Переносы | Неудобное разбиение | Прочитать без паузы |
Чек-лист готовых субтитров
[ ] Исходник сохранён отдельно [ ] Формат распознан редактором [ ] Проверены сложные участки [ ] SRT сохранён в UTF-8 [ ] Реплики не потерялись [ ] Время совпало с видео [ ] Изменения оформления понятны
Частые вопросы
TTML можно переименовать в SRT?
Нет. Нужен разбор структуры и сохранение в другом формате.
Все стили останутся?
Нет. Простой SRT не воспроизводит все возможности размещения и оформления TTML.
DFXP — это обычный текст?
Это структурированный формат синхронизированного текста; при переносе нужно сохранить время и содержимое реплик.
Почему число блоков изменилось?
Сложные элементы могли быть преобразованы иначе. Проверьте полноту текста и интервалы, особенно при одновременных надписях.