Формат субтитров VTT
Что умеет этот формат
- Оформление текста
- Жирный и курсив
- Положение на экране
- Нет
- Тайминг караоке
- Нет
- Переносы строк внутри реплики
- Да
- Таймлайн
- Начало и конец для каждой реплики
- Точность тайминга
- 1 мс
- Тайминг хранится в номерах кадров
- Нет
- Текст справа налево
- Да
Примеры
Типичный файл VTT и то, что сайт из него читает
Файл
WEBVTT
intro
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.
Что в нём
2 cues, 2 lines of text
00:00:01.000 → 00:00:04.000
Hello there.
00:00:04.500 → 00:00:08.000
Second line with italics. [italic ×1]
[settings align:start position:10%]
Outside the cues:
header "WEBVTT"Правая колонка — не результат конвертации, а то, что сайт извлекает из левого файла: реплики, интервалы, оформление и всё, что осталось за пределами реплик.
Неаккуратный файл VTT: что всё равно читается
Файл
WEBVTT - boundary sample
NOTE a comment
spanning two lines
STYLE
::cue { color: red }
REGION
id:fred
width:40%
00:01.000 --> 00:03.000
Hours-less timecode with <b>bold</b> and <v Roger>a voice tag.
00:05.000 --> 00:04.000
End before start.
NOTE between cues
00:07.000 --> 00:09.000
entities stay literal.
00:10.000 --> oops
Unreadable end time.
NOTE trailing
Что в нём
3 cues, 3 lines of text
00:00:01.000 → 00:00:03.000
Hours-less timecode with bold and <v Roger>a voice tag. [bold ×1]
00:00:05.000 → 00:00:05.001
End before start.
00:00:07.000 → 00:00:09.000
entities stay literal.
Outside the cues:
header "WEBVTT - boundary sample"
blocks NOTE ×3, STYLE, REGION
Reported while reading — repaired or skipped, never silently:
1 × blocks that were neither a cue nor a NOTE/STYLE/REGION block (they were skipped)
1 × cues whose end time was not after their start time (they were given a 1ms duration)Второй файл намеренно неаккуратный: BOM, смешанные переводы строк и пустые поля. Сайт всё равно дочитывает его до конца, а пропущенные фрагменты перечисляет в отчёте.
Конвертировать WebVTT (VTT) в другой формат
Каждая страница работает целиком в вашем браузере. Подписи говорят, чего стоит это направление, ещё до того, как вы его откроете.
- Точность
- Содержимое формата
- Оформление
- Содержимое формата
- Содержимое формата
- Тайминг
- Оформление
- Точность
- Содержимое формата
- Оформление
- Частота кадров
- Содержимое формата
- Оформление
- Содержимое формата
- Содержимое формата
- Оформление
- Содержимое формата
- Точность
- Содержимое формата
- Содержимое формата
- Тайминг
- Оформление
- Переносы строк
- Содержимое формата
Конвертация в этот формат
- SubRip (SRT) → WebVTT (VTT)
- Advanced SubStation Alpha (ASS) → WebVTT (VTT)
- SubStation Alpha (SSA) → WebVTT (VTT)
- YouTube SBV → WebVTT (VTT)
- SAMI (SMI) → WebVTT (VTT)
- LRC Lyrics → WebVTT (VTT)
- MicroDVD → WebVTT (VTT)
- TTML (Timed Text) → WebVTT (VTT)
- SubtitleMatrix JSON → WebVTT (VTT)
- Plain Text (TXT) → WebVTT (VTT)
- CSV Spreadsheet → WebVTT (VTT)
VTT — веб-формат субтитров с обязательной строкой WEBVTT в начале файла. Внутри файла — заголовок WEBVTT, необязательное имя реплики, строка таймкода с настройками и строки текста; время записывается как 00:00:01.000, то есть миллисекунды отделены точкой, а часы, минуты и секунды — двоеточиями.
VTT поддерживает жирный, курсив и подчёркивание, а также настройки реплики вроде align: и position:, но произвольных координат не хранит. Сервер не участвует: файл читается и записывается на вашем устройстве, а результаты скачиваются архивом.
Частые вопросы
Что хранит VTT помимо текста реплик?
Структура VTT: заголовок WEBVTT, необязательное имя реплики, строка таймкода с настройками и строки текста. Дополнительно: блоки NOTE, STYLE и REGION, а также настройки отдельной реплики вроде align: и position:. Оформление — базовое оформление: жирный, курсив, подчёркивание и классы.
Как VTT записывает начало и конец реплики?
VTT пишет время как 00:00:01.000 (миллисекунды отделены точкой, а часы, минуты и секунды — двоеточиями). Полный интервал выглядит так: 00:00:01.000 → 00:00:03.500.
Насколько богатое оформление поддерживает VTT?
Оформление VTT — базовое оформление: жирный, курсив, подчёркивание и классы. Сильнее всего это заметно при сравнении с ASS: там есть шрифт, цвет, обводка, тень и караоке, а VTT такие поля либо не хранит, либо записывает упрощённо.
Что теряется при переводе VTT в более простой формат?
При переводе VTT в SRT теряются базовое начертание и служебные блоки NOTE, STYLE и REGION; в ASS то же самое происходит с настройками реплики, которым там нет прямого соответствия.
Можно ли перевести VTT в другие форматы в браузере?
Да: на сайте открыто 11 направлений перевода из VTT — в SRT, ASS, SSA, SBV, SMI, LRC, MicroDVD, TTML, JSON, TXT, CSV. Файл разбирается и записывается в текущей вкладке, не отправляется на сервер, а пакет можно скачать одним архивом.
Как VTT читает повреждённый файл?
VTT требует строку WEBVTT в начале, но прощает BOM, лишние пустые строки и реплики без текста; блоки без читаемого таймкода пропускаются с записью в отчёт.