WebVTT

ОткрытьСохранитьПростой текстВеб

Формат субтитров веба: то, что браузер показывает через HTML-тег <track>. Блоки SubRip, но с заголовком, точкой перед миллисекундами и местом для оформления, положения и говорящих.

Коротко

Расширение.vtt
Тип медиаtext/vtt
СпецификацияW3C, WebVTT: The Web Video Text Tracks Format, кандидат в рекомендации
Точность времениМиллисекунды
Кодировка текстаUTF-8, всегда: этого требует спецификация. Subtitld читает и другие кодировки.
ОформлениеТеги курсива, полужирного и подчёркивания; цвета через классы и CSS (::cue). Зачёркивания нет.
ПоложениеНастройки блока (line, position, align, size, vertical) и области (regions)
ГоворящиеТеги голоса: <v Thom>
В контейнерахВ Matroska как S_TEXT/WEBVTT; в MP4 как wvtt (ISO/IEC 14496-30); в потоках HLS и DASH

Строение блока

Файл — это заголовок, а затем блоки. Каждый блок похож на блок SubRip, но у него две необязательные части.

WEBVTT
 
intro
00:00:23.000 --> 00:00:24.500 line:0
<v Celia>You're a jerk,
<i>Thom</i>.
 
  1. 1 · Заголовок

    WEBVTT, одно или с пробелом и названием, затем пустая строка. Без него браузер отказывается от всего файла.

  2. 2 · Идентификатор

    Необязательный. Имя блока на отдельной строке: число, как в SubRip, или слово.

  3. 3 · Тайминг

    Начало, стрелка -->, конец. Точка перед миллисекундами.

  4. 4 · Настройки

    Необязательные. Где показать блок, после времени конца.

  5. 5 · Текст

    Строки текста с тегами оформления и голосов. Пустая строка завершает блок, поэтому внутри блока её быть не может.

Таймкод

Часы можно опустить. 00:27.000 — то же самое время, и многие файлы короче часа записаны именно так. Запятая перед миллисекундами — привычка SubRip, а не WebVTT; Subtitld её всё равно читает.

Блоки помимо субтитров

Блок Что содержит
NOTE Комментарий для людей. Плееры его пропускают.
STYLE CSS для блоков через ::cue. Перед первым блоком.
REGION Именованная область экрана, в которой могут прокручиваться блоки.

Текст блока

Тег Эффект
<i>…</i>, <b>…</b>, <u>…</u> Курсив, полужирный, подчёркивание
<c.yellow>…</c> Класс, который может окрасить CSS (или встроенные цветовые классы WebVTT)
<v Thom>… Голос: кто говорит. Закрывающий тег необязателен.
<lang pt>…</lang> Язык фрагмента текста
<ruby>漢<rt>kan</rt></ruby> Чтение над текстом, для японского и китайского
<00:00:28.500> Метка времени внутри блока, для караоке
&amp; &lt; &gt; &nbsp; Амперсанд, <, > и неразрывный пробел, которые иначе читались бы как разметка

Цвета

Восемь классов окрашивают текст без единой строчки CSS: white, lime, cyan, red, yellow, magenta, blue и black, а также те же восемь с bg_ для фона. Любой другой цвет требует собственного класса и блока STYLE:

STYLE
::cue(.gold) { color: #ffd700; }

00:00:30.800 --> 00:00:34.000
<c.gold>Why don't you just admit that</c>

Не каждый плеер читает блоки STYLE; встроенные цветовые классы WebVTT надёжнее. Subtitld использует их всякий раз, когда цвет входит в восемь.

Настройки блока

Настройка Что делает
line:0 Строка на экране: число отсчитывает строки сверху (отрицательное — снизу), процент — от верхнего края
position:10% Где рамка блока стоит по ширине экрана
align:start Выравнивание текста в рамке: start, center, end, left, right
size:50% Ширина рамки
vertical:rl Вертикальный текст, справа налево или слева направо
region:fred Показать блок в REGION

Subtitld читает line, position и align как место субтитра на экране — те же девять мест, что и {\an1} — {\an9} в SubRip — и записывает их обратно: line:0 для верха, line:50%,center для середины, position:10% align:start и position:90% align:end для боковых мест.

WebVTT в Subtitld

Сохраняется в .vtt
  • Текст каждого субтитра и переносы строк
  • Курсив, полужирный, подчёркивание и цвет
  • Где субтитр стоит на экране
  • Говорящие, как теги голоса
  • Начало и конец с точностью до миллисекунды, по порядку
Некуда записать
  • Зачёркивание: в WebVTT для него нет тега
  • Лица говорящих и их цвета
  • Переводы рядом с оригиналом (перевод может его заменить или стоять под ним)
  • Озвучка и метаданные

Сохраните проект .usfx, чтобы всё это не потерялось.

Открытие файла WebVTT

Subtitld находит каждый блок по строке тайминга и читает:

  • заголовок и блоки NOTE, STYLE и REGION как то, чем они являются, а не как субтитры, а идентификаторы блоков как имена;
  • времена с часами и без них, с точкой или запятой;
  • голоса как говорящих субтитров, готовых к озвучке;
  • цветовые классы WebVTT и цвета, которые блок STYLE задаёт другим классам;
  • line, position и align как место субтитра на экране;
  • любую кодировку, хотя WebVTT требует UTF-8.

Того, для чего у Subtitld нет места, — областей, размера блока, вертикального текста, чтений ruby и меток времени караоке — в файле не будет. Сам текст остаётся.

Экспорт WebVTT

Диалог экспорта Subtitld с выбранным VTT; говорящие записаны как теги голоса

Экспорт, затем Субтитры и VTT, предлагает:

  • ТекстОригинал, перевод или оба варианта, с переводом под оригиналом.
  • Имена говорящихНе выводятся, ставятся перед текстом (Thom: …) или записываются как теги голоса (<v Thom>), собственным способом WebVTT.
  • ОформлениеСохраняется или удаляется.
  • Сдвиг времениВсе субтитры смещаются раньше или позже на одну и ту же величину.

Файл всегда в UTF-8, как того требует WebVTT: WEBVTT, затем блоки в порядке начала, и у каждого времени есть часы. Символы, которые могли бы читаться как разметка, записываются как сущности, а пустые субтитры пропускаются.

На веб-странице

<video controls src="tears-of-steel.mp4">
  <track kind="subtitles" src="tears-of-steel.en.vtt"
         srclang="en" label="English" default>
</video>

Отдавайте файл с типом text/vtt. Если видео и файл на разных доменах, видео нужен атрибут crossorigin, а серверу — заголовок Access-Control-Allow-Origin, иначе браузер не загрузит дорожку.

WebVTT или SubRip?

SubRip — для плееров, редакторов и загрузок; WebVTT — для видео в вебе. На странице SubRip они сравниваются бок о бок.

Интересные факты

2010

Начинался как WebSRT: его набросали в WHATWG для нового элемента <track> HTML5 на основе SubRip, и лишь потом он получил название WebVTT.

WEBVTT

Шесть букв в самом начале каждого файла. Если браузер их не находит, он отказывается от всей дорожки.

8

Цвета, которые плеер знает без CSS: белый, лаймовый, голубой, красный, жёлтый, пурпурный, синий и чёрный, для текста и для фона.

Похожие форматы

Нужно исправить файл .vtt?

Откройте его в Subtitld вместе с видео и поправьте тайминг по осциллограмме.

Скачать Subtitld