Конвертируйте субтитры DFXP, TTML и XML в SRT
Стриминговые сервисы и телевещатели часто отдают субтитры в формате XML: TTML, сохраняя их как .dfxp, .ttml или .xml. Большинство же плееров и телевизоров требуют SRT. Загрузите XML-файл и скачайте SRT, где каждая реплика стоит точно на своём месте — независимо от того, в чём задано время: в часах и секундах, кадрах или тиках (ticks). Задачи объёмом до 3,000 строк полностью бесплатны; файлы большего объёма — $5 (разовый платёж).
- Читает файлы субтитров .dfxp, .ttml и .xml
- Переводит время в тиках (например, 15015000t) с учётом частоты тиков (tick rate) из файла
- Переводит таймкоды в кадрах (например, 00:01:02:12) с учётом частоты кадров из файла
- Сохраняет переносы строк и курсив; цвета и области экрана (regions) не переносятся
- Сортирует реплики по времени и нумерует для формата SRT
Почему XML от стримингов так неудобен
Файл TTML — это XML-документ. Каждая строка субтитров находится в элементе <p> с атрибутами begin и end либо begin и duration, а текст внутри может содержать переносы <br/> и теги <span> со стилями. Главная сложность — таймкоды. В одних файлах время записано привычно: 00:01:02.500. В других считаются кадры — например, 00:01:02:12 с частотой кадров, указанной в корневом элементе. А некоторые стриминговые сервисы задают время в тиках, например begin="15015000t", где параметр tickRate в начале файла указывает, сколько тиков приходится на одну секунду (часто — десять миллионов).
Вручную пересчитывать такое для каждой строки — значит делить огромные числа сотни раз. Конвертер сам считывает указанные tickRate и frameRate и делает вычисления для каждого begin, end и duration: так 15015000t при десяти миллионах тиков в секунду превращается в 00:00:01,502.
Что сохраняется при конвертации
- Текст каждого элемента <p> (теги <br/> превращаются в переносы строк, лишние пробелы убираются)
- Курсив, помеченный как tts:fontStyle="italic" (превращается в теги <i>)
- Таймкоды из параметров begin и end (или begin и dur)
- Не сохраняются: цвета, шрифты, области и экранное позиционирование
Полезно знать
Файл должен быть корректным XML: если он оборван или вручную отредактирован так, что теги не закрываются, прочитать его не удастся. Если итоговый SRT рассинхронизирован с вашим видео, возможно, ваш релиз идёт с другой частотой кадров или начинается в другой момент — это можно исправить с помощью инструмента синхронизации субтитров. Вы также можете снова скачать TTML — в виде чистого файла со стандартными таймкодами — или VTT для веб-плеера.
Сначала сконвертированные строки выводятся на экран: вы можете сверить первые реплики с видео перед тем, как скачать файл.
Как работает инструмент, сколько он стоит и как обрабатываются ваши файлы — на странице Конвертер субтитров; цены на все инструменты — на странице цены.
Обновлено
Вопросы и ответы
Может ли ChatGPT перевести DFXP в SRT?
Он знает формат и справится с несколькими строками. Но файл целой серии в XML слишком велик, а пересчёт тиков или кадров требует арифметических вычислений в каждой строке — чат-боты часто ошибаются в расчётах или обрывают ответ на полуслове. Наш инструмент вычисляет каждый таймкод программно.
Что означают числа с буквой t на конце?
Это тики (ticks). Параметр tickRate в корневом элементе файла задаёт количество тиков в одной секунде (часто это десять миллионов), и конвертер делит число на это значение, вычисляя точное время.
Отличается ли .dfxp от .ttml?
DFXP — это старое название того же формата TTML. И те, и другие, а также файлы субтитров с расширением .xml, обрабатываются совершенно одинаково.
Сохранятся ли цвета и расположение текста?
Нет. Формат SRT не поддерживает цвета и позиционирование на экране, поэтому сохраняются только текст и курсив, а субтитры отображаются на стандартном месте плеера.
Сколько это стоит?
Задача объёмом до 3,000 строк субтитров полностью бесплатна. Задачи большего объёма (например, целый сезон XML-файлов) стоят $5 за объём до 50 файлов или ZIP-архив и до 50,000 строк.
Работает ли это с субтитрами-картинками с дисков Blu-ray?
Нет. Файлы .sup с Blu-ray — это растровые изображения, а не текст XML. Для них требуется оптическое распознавание символов (OCR), чего этот инструмент не делает.