Зачем конвертировать субтитры?

Файл субтитров содержит строки диалогов из видео и время, когда каждая из них появляется и исчезает. Видеоплееры, программы для монтажа и веб-сайты поддерживают разные форматы субтитров, поэтому файл часто нужно конвертировать, прежде чем использовать его там, где вам нужно. Форматы также по-разному задают время показа строк и по-разному сохраняют их оформление: например, курсив, цвета и положение на экране.

Формат Название Что сохраняет конвертер
SRT SubRip Стили, цвета и положение
VTT WebVTT Стили, цвета из списка WebVTT и положение
ASS Advanced SubStation Alpha Стили, цвета и положение
SSA SubStation Alpha Стили, цвета и положение
SUB MicroDVD Стили и цвета целых строк
SBV Субтитры YouTube (SubViewer) Только текст
TTML Timed Text Markup Language Стили, цвета и положение
DFXP Distribution Format Exchange Profile Стили, цвета и положение
SMI SAMI Стили и цвета
LRC Синхронизированные тексты песен Только текст, по одной строке на каждое время

Стили — это курсив, полужирное начертание, подчёркивание и зачёркивание. Исключение — WebVTT, в котором нет зачёркивания. Все форматы сохраняют время и текст, а все, кроме LRC, — также разрывы строк. В файлах SAMI и LRC указано только время начала каждой строки, а файлы MicroDVD отсчитывают время в видеокадрах.

Описание инструмента

Этот инструмент конвертирует субтитры между форматами SRT, VTT, ASS, SSA, SUB, SBV, TTML, DFXP, SMI и LRC. Все конвертеры субтитров здесь работают одинаково: от универсального конвертера субтитров до конвертеров для отдельных пар форматов, например SRT в VTT, VTT в SRT или ASS в SRT. При запуске в них выбраны форматы, указанные в названии, а в меню «Источник» и «Целевой формат» можно выбрать любые другие.

Конвертеры принимают файлы субтитров или текст, вставленный в поле, и выдают файлы или текст. Выберите нужный вариант с помощью вкладок «Файл» и «Текст» вверху панели источника и панели результата. По умолчанию на обеих панелях выбрана вкладка «Файл».

  • Файл на входе: выберите или перетащите один или несколько файлов субтитров. В окне выбора файлов отображаются только файлы в исходном формате, но можно перетащить файлы любого из поддерживаемых форматов. Каждый файл конвертируется из собственного формата, поэтому файл VTT конвертируется даже в конвертере ASS в SRT. Файл конвертируется сразу после добавления, а также при каждом выборе другого целевого формата или частоты кадров.
  • Текст на входе: вставьте или введите субтитры — они будут конвертироваться по мере ввода.
  • Файл на выходе: конвертированные файлы появятся в виде сетки, у каждого будет собственная кнопка «Скачать». Имена файлов сохранятся, изменится только расширение. Для вставленных субтитров будет создан один файл с именем converted, например converted.vtt.
  • Текст на выходе: конвертированные субтитры отобразятся в виде текста, готового к копированию. Если конвертировано несколько файлов, в меню «Файл» над текстом можно выбрать, какой из них показать.

Кнопка обмена меняет направление конвертации: целевой формат становится исходным, панели меняются местами вместе с выбранными вкладками, а конвертированные субтитры становятся новыми входными данными.

Субтитры конвертируются на вашем устройстве и никогда не загружаются на сервер.

Конвертация нескольких файлов субтитров одновременно

На вкладке «Файл» выберите или перетащите столько файлов субтитров, сколько нужно, и добавляйте новые в любое время. Это пакетный конвертер субтитров: субтитры для целого сериала можно конвертировать за один раз — например, из ASS в SRT, из SRT в VTT или из SUB в SRT.

  • Файлы конвертируются по очереди, в порядке добавления, а индикатор выполнения показывает их количество.
  • Конвертированные файлы появятся в виде сетки, у каждого будет собственная кнопка «Скачать».
  • Кнопка «Скачать всё» сохраняет все конвертированные файлы в одном ZIP-файле, а если файл всего один — сохраняет его без изменений.
  • Если имена двух файлов совпадают, к имени более позднего файла добавляется номер, например episode (1).srt.
  • Если файл не удаётся конвертировать, в сообщении об ошибке будет указано его имя, а остальные файлы всё равно конвертируются.

Настройки

Параметр «Частота кадров (fps)» появляется в разделе «Настройки» под целевым форматом при конвертации из или в SUB, поскольку файлы MicroDVD отсчитывают время в видеокадрах, а не в секундах. Выберите частоту кадров видео, для которого предназначены субтитры: 23.976, 24, 25, 29.97, 30, 50, 59.94 или 60 кадров в секунду. По умолчанию установлено значение 23.976.

  • Если в первой строке файла MicroDVD указана частота кадров, например {1}{1}25, файл читается с этой частотой независимо от значения параметра «Частота кадров». Остальные файлы MicroDVD читаются с выбранной частотой.
  • В начале файлов MicroDVD, создаваемых конвертером, указывается строка с частотой кадров, с которой они были созданы.

Как это работает

Каждый файл или вставленный текст разбирается на блоки субтитров — строки текста, которые показываются в одно и то же время, — а затем записывается в целевом формате.

  • Текст файла считывается в кодировке, указанной в его маркере порядка байтов; если такого маркера нет, используется UTF-8, когда файл соответствует этой кодировке, или кодировка, которую chardet считает наиболее вероятной, например Windows-1251 для русских субтитров, Shift_JIS для японских или EUC-KR для корейских. Файлы UTF-16 без маркера порядка байтов также распознаются. Конвертированные файлы всегда имеют кодировку UTF-8 и окончания строк Windows (CRLF).
  • Файл определяется по содержащемуся в нём типу субтитров, а не по расширению. То же относится и к вставленному тексту: он определяется по содержимому, а не по выбранному в меню «Источник» формату. Файл .xml с субтитрами TTML читается как TTML, файл SRT с расширением .txt при перетаскивании в окно выбора файлов читается как SRT, а файл .sub с субтитрами SubViewer, время в котором задано с точностью до сотых долей секунды, читается как SubViewer, а не как MicroDVD.
  • Время и текст всегда сохраняются, как и разрывы строк, за исключением файлов LRC. Курсив, полужирное начертание, подчёркивание, зачёркивание, цвета и положение сохраняются, если они поддерживаются целевым форматом, как показано в таблице. Шрифты, размеры шрифта, контуры, анимация, синхронизация караоке, имена говорящих, рисунки, заметки и комментарии не переносятся.
  • Белый текст записывается без указания цвета. В WebVTT сохраняются только заданные в нём цвета: белый, салатовый, голубой, красный, жёлтый, пурпурный, синий и чёрный, в виде классов, например <c.yellow>.
  • Блоки субтитров вверху или посередине изображения, а также слева или справа сохраняют своё положение. В файлах SRT и ASS для этого используются теги вроде {\an8}, числа в которых расположены как клавиши цифровой клавиатуры: 8 означает верх по центру. В файлах SSA используются теги вроде {\a6}, в VTT — настройки строки и выравнивания блока, а в TTML и DFXP для каждого положения создаётся область. В файлах MicroDVD, SBV, SAMI и LRC положения не задаются, поэтому блоки субтитров их теряют.
  • Время в файлах ASS, SSA и LRC округляется до сотых долей секунды, а в MicroDVD — до ближайшего видеокадра.
  • В файлах ASS и SSA каждая строка Dialogue считывается с курсивом, полужирным начертанием, подчёркиванием, зачёркиванием, цветом и выравниванием, заданными для её стиля; переопределяющие теги меняют эти параметры. В файлах ASS и SSA, создаваемых конвертером, используется один стиль — Default: белый текст Arial размером 16 внизу по центру сценария размером 384 × 288.
  • В файлах SAMI и LRC указано только время начала каждого субтитра. Субтитр отображается до следующего или до пустого субтитра, который его скрывает; последний субтитр отображается 5 секунд. В файле LRC последний субтитр отображается до конца песни, указанного в теге длины, если это время наступает позже. Поскольку в этих форматах одновременно отображается только один субтитр, перекрывающиеся блоки разделяются в момент начала или окончания одного из них, и в каждой части отображается текст всех блоков, которые должны быть на экране в это время.
  • Файлы LRC считываются по каждому времени, указанному для строки; строки с одинаковым временем отображаются вместе, как в файлах с переводами, а тег смещения сдвигает время всех строк. Время отдельных слов, например <01:23.45>, не переносится. В файлах LRC, создаваемых конвертером, каждый блок записывается в одну строку, а его строки разделяются пробелом.
  • Если файл SAMI содержит субтитры на нескольких языках, он считывается на первом языке, для которого есть субтитры. В файлах SAMI, создаваемых конвертером, используется один язык: указанный в источнике — например, язык файла TTML или другого файла SAMI, — либо английский, если язык не указан. Имя класса формируется на основе языка, например KOCC для корейского.
  • В файлах TTML и DFXP время может быть указано в виде времени на часах, кадров, тактов или смещения, например 1.5s; учитывается также время элементов body и div. Стили считываются независимо от того, заданы ли они непосредственно для текста или объявлены в head. Файлы DFXP — это файлы TTML, поэтому конвертер обрабатывает их одинаково; отличается только расширение. В создаваемых файлах время указывается на часах с точностью до миллисекунд, а стили задаются непосредственно для текста.
  • В файлах WebVTT не переносятся заметки, блоки стилей, области и идентификаторы блоков субтитров. Строка «Language:» в заголовке, которая встречается в некоторых файлах, задаёт язык.
  • В файлах MicroDVD управляющие коды, например {y:i} для курсива и {c:$0000FF} для цвета, задают стиль строки, а если в коде используется заглавная буква — всего блока субтитров. Курсив для строки также задаётся символом / в её начале. MicroDVD не позволяет задавать стиль для части строки, поэтому в файлах, создаваемых конвертером, сохраняются стили, заданные для целых строк или блоков.
  • Файлы SRT конвертируются, даже если в них пропущены номера блоков субтитров, есть пустые строки внутри блоков или вместо запятых в значениях времени используются точки.
  • Файлы SUB, поставляемые вместе с файлом .idx (VobSub), содержат изображения субтитров, а не текст, поэтому их нельзя конвертировать.

Советы

  • Для видео на веб-странице конвертируйте субтитры в VTT: элемент HTML <track> принимает файлы WebVTT.
  • Если в файле MicroDVD субтитры появляются слишком рано или поздно, причём разница увеличивается по мере воспроизведения видео, конвертируйте файл ещё раз, указав частоту кадров видео, для которого предназначены субтитры.
  • Если вместо букв отображаются неправильные символы, например Ïðèâåò вместо Привет, значит, кодировка файла не была распознана. Откройте файл в текстовом редакторе, сохраните его в UTF-8 и конвертируйте ещё раз либо скопируйте текст и вставьте его на вкладке «Текст».