Форматы файлов субтитров: от SRT до Spruce STL
Что представляет собой каждый формат субтитров, как он выглядит, где используется и что меняется при конвертации: SRT, WebVTT, ASS, TTML, SAMI, LRC и другие.
Автор: Syed Peera Saheb · Опубликовано
Краткий ответ
Большинство форматов субтитров хранят одни и те же три вещи: когда субтитр появляется, когда исчезает и что в нём написано. SRT работает почти везде, WebVTT нужен веб-браузерам, а остальные существуют для оформления, телевещания, старых программ или текстов песен.
На этой странице разобраны все форматы, которые читает и записывает конвертер на этом сайте. Для каждого есть маленький пример, места, где он чаще всего встречается, и что сохраняется при конвертации. Все они текстовые, поэтому любой можно открыть в простом текстовом редакторе и посмотреть, что внутри. Конвертер распознаёт формат по содержимому файла, а не по расширению, так что файл с неправильным расширением всё равно откроется.
| Формат | Расширение | Чтение | Запись | Типичное применение |
|---|---|---|---|---|
| SubRip | .srt | Да | Да | Плееры, телевизоры, видеоредакторы, большинство платформ |
| WebVTT | .vtt | Да | Да | Веб-видео, браузеры, онлайн-обучение |
| Advanced SubStation Alpha | .ass | Да | Да | Субтитры со стилями, аниме, файлы MKV |
| SubStation Alpha | .ssa | Да | Записывается как ASS | Старые субтитры со стилями |
| SBV | .sbv | Да | Да | Файлы субтитров с YouTube |
| TTML и DFXP | .ttml, .dfxp, .xml | Да | Да | Стриминг, телевещание, профессиональная сдача |
| MicroDVD | .sub | Да | Да | Старые плееры и загрузки, время в кадрах |
| SubViewer | .sub | Да | Нет (записывается как SRT) | Старые программы |
| SAMI | .smi, .sami | Да | Да | Старые медиаплееры Windows и загрузки |
| LRC | .lrc | Да | Да | Тексты песен в музыкальных плеерах |
| CSV | .csv | Да | Да | Таблицы и списки для вычитки |
| Spruce STL | .stl | Да | Да | Авторинг DVD, время в кадрах |
| Обычный текст | .txt | Нет | Да | Расшифровки без таймингов |
SRT и WebVTT: два повседневных формата
SRT происходит от SubRip — программы, которая считывала субтитры с DVD. У каждого субтитра есть номер, строка таймингов с запятой перед миллисекундами, текст и пустая строка. Официальной спецификации нет, поэтому плееры допускают небольшие отклонения. Форматирование ограничено тегами вроде <i>, <b> и <u>.
WebVTT — стандарт W3C. Файл начинается с WEBVTT, в строке таймингов перед миллисекундами стоит точка, а номера субтитров необязательны. Он также умеет позиционировать и оформлять субтитры, но плееры вне браузера часто это игнорируют. При конвертации между двумя форматами сохраняются все тайминги, переносы строк и теги курсива, полужирного и подчёркивания. Настройки позиции и стиля WebVTT в SRT не переносятся, и при создании файла VTT конвертер их тоже не записывает. Говорящий, записанный в файле WebVTT как <v Name>, сохраняется при повторной записи в WebVTT и отбрасывается в других форматах.
1
00:00:04,300 --> 00:00:06,800
Over here.
<i>Follow my voice.</i>
WEBVTT
00:00:04.300 --> 00:00:06.800
Over here.
<i>Follow my voice.</i>ASS и SSA: субтитры со стилями
SubStation Alpha и его преемник Advanced SubStation Alpha хранят список именованных стилей (шрифт, размер, цвета, обводка и позиция) и по строке Dialogue на каждый субтитр. Теги переопределения в фигурных скобках, например {\an8} или {\i1}, меняют вид отдельной строки. Эти форматы популярны в аниме и часто встречаются внутри видеофайлов MKV.
При конвертации из ASS или SSA сохраняются тайминги и текст каждой строки, переносы строк, записанные как \N, а также курсив, полужирный и подчёркивание. Шрифты, цвета, позиции и эффекты отбрасываются, строки комментариев пропускаются, а векторные рисунки удаляются. При конвертации в ASS каждый субтитр получает один стиль по умолчанию: белый Arial с чёрной обводкой внизу кадра 1920 × 1080. Файлы SSA записываются как ASS, который понимает любая программа, читающая SSA.
Dialogue: 0,0:00:04.30,0:00:06.80,Default,,0,0,0,,Over here.\N{\i1}Follow my voice.{\i0}SBV и SubViewer
SBV — простой формат, который YouTube давно использует для файлов субтитров. Субтитр — это время начала и время конца через запятую в одной строке, а за ними текст. В справке YouTube он называется SubViewer. Разметка не поддерживается, поэтому при записи SBV конвертер удаляет курсив, полужирный и подчёркивание.
Файлы SubViewer 2 выглядят похоже, но используют сотые доли секунды и часто начинаются с заголовка [INFORMATION]. Конвертер их читает, пропускает заголовок и при сдвиге или очистке сохраняет как SRT, потому что SubViewer он не записывает.
0:00:04.300,0:00:06.800
Over here.
Follow my voice.TTML и DFXP: синхронизированный текст в XML
TTML (Timed Text Markup Language) — XML-формат от W3C. DFXP — название более раннего черновика, и файлы с обоими расширениями содержат документ одного вида. TTML и его профили, такие как IMSC и EBU-TT, используют стриминговые сервисы, вещатели и профессиональные инструменты для субтитров.
Конвертер читает из TTML и DFXP текст, тайминги, переносы строк, курсив, полужирный и подчёркивание, включая время в тиках и кадрах. Регионы, цвета, шрифты и прочее оформление отбрасываются. При записи TTML или DFXP создаётся простой документ TTML 1 со временем в миллисекундах и тремя сохраняемыми стилями текста. Подробности — в руководстве по XML-субтитрам.
<p begin="00:00:04.300" end="00:00:06.800">Over here.<br/><span tts:fontStyle="italic">Follow my voice.</span></p>MicroDVD SUB и Spruce STL: форматы, которые считают кадры
Файлы MicroDVD хранят номера кадров вместо времени: {100}{150} означает с кадра 100 по кадр 150. Чтобы перевести кадры в секунды, конвертеру нужна частота кадров видео. Во многих файлах она указана в первой строке, например {1}{1}23.976, и конвертер её использует. В противном случае используется выбранная вами частота, по умолчанию 23.976. Вертикальная черта начинает новую строку, а {y:i} делает строку курсивной. При записи MicroDVD конвертер добавляет строку с частотой кадров, сохраняет курсив только для строк, полностью набранных курсивом, и удаляет остальное форматирование.
Spruce STL — текстовый формат из программ авторинга DVD. Каждая строка содержит таймкоды начала и конца, оканчивающиеся кадрами, а затем текст. Конвертер читает его коды оформления ^I, ^B и ^U и записывает их обратно. Spruce STL — это не EBU STL, двоичный формат телевещания с тем же расширением .stl. Конвертер не читает и не записывает EBU STL.
{1}{1}23.976
{103}{163}Over here.|{y:i}Follow my voice.
00:00:04:07 , 00:00:06:19 , Over here.|^IFollow my voice.^ISAMI и LRC: форматы, которые хранят только время начала
SAMI — HTML-подобный формат от Microsoft. Тег <SYNC Start=...> задаёт в миллисекундах момент появления следующего за ним текста, а пустой SYNC очищает экран. Файл SAMI может содержать несколько языков в виде классов абзацев. Конвертер читает первый найденный язык и сохраняет курсив, полужирный и подчёркивание.
Файлы LRC синхронизируют тексты песен для музыкальных плееров — по строке на метку времени, например [00:12.50]. Когда припев повторяется, у строки может быть несколько меток времени, а тег [offset:...] сдвигает всё. При чтении SAMI или LRC каждый субтитр заканчивается, когда начинается следующий, а последний длится четыре секунды. При записи LRC каждый субтитр становится одной строкой, поэтому переносы строк заменяются пробелами, форматирование удаляется, а пустая метка времени обозначает паузу. Пословные тайминги из расширенных файлов LRC не сохраняются.
[00:04.30]Over here. Follow my voice.
[00:06.80]
[00:07.10]Soft piano musicCSV и обычный текст
Файлы CSV удобны для вычитки субтитров в таблице. Конвертер читает файл CSV, в первой строке которого есть столбцы начала, конца и текста с названиями вроде Start, End и Text, разделённые запятыми, точками с запятой или табуляцией. Время может быть записано как время на часах, например 00:00:04.300, или просто в секундах, а целые числа читаются как миллисекунды, если в заголовке указано ms. Записываемый CSV содержит столбцы Number, Start, End, Duration и Text, без форматирования.
Обычный текст — только выходной формат. Он сохраняет слова и отбрасывает тайминги, поэтому его нельзя прочитать обратно как субтитры. Субтитры можно объединить в абзацы или поставить метку времени в начале каждой строки — это задача инструмента «Субтитры в текст».
Что сохраняет любая конвертация и чего она никогда не делает
Какими бы ни были форматы, конвертер сохраняет время начала и конца каждого субтитра с точностью до миллисекунды, если целевой формат это позволяет, слова и переносы строк там, где они есть в целевом формате. Курсив, полужирный и подчёркивание сохраняются, если оба формата умеют их показывать. Каждый файл сохраняется в UTF-8, а если буквы в предпросмотре выглядят неправильно, можно выбрать другую кодировку текста.
Он не сохраняет позиции, цвета, шрифты, тайминги караоке и анимацию и не читает субтитры-изображения, например файлы Blu-ray SUP или DVD IDX, для которых нужно распознавание символов. Он также не читает форматы телевещания, такие как SCC или EBU STL, не извлекает субтитры из видеофайлов и не переводит текст. Вся конвертация происходит в вашем браузере, и файл не загружается на сервер.