Перейти до основного вмісту
SubtitleMatrix

Формат субтитрів 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
&nbsp; 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
    &nbsp; 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, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.

Конвертувати WebVTT (VTT) в інший формат

Кожен із них працює повністю у вашому браузері. Позначки кажуть, чого коштує цей напрямок, ще до того, як ви його відкриєте.

Конвертація в цей формат

WebVTT (VTT) — один із дванадцяти форматів субтитрів, з якими працює цей сайт, і ця сторінка — його довідник: що формат уміє зберегти, чого не вміє і в який формат його переписати.

WebVTT — вебформат: обов’язковий рядок WEBVTT на початку, базове оформлення <b>, <i> і <u> та налаштування репліки. Час записано як 00:00:01.250, а блоки NOTE, STYLE і REGION живуть поза репліками.

Таблиця вище — це весь перелік можливостей, без прихованих рядків. Якщо рядок каже «ні», саме це й зникне під час конвертації з VTT, і кожна сторінка перетворення нижче попереджає про це до того, як ви відкриєте файл.

Усі ці перетворення виконуються у вашому браузері. Файли нікуди не надсилаються, обліковий запис не потрібен — це важливо для матеріалів під NDA, медичних записів і матеріалів до ефіру, які ще не вийшли.

Часті запитання

Що таке файл VTT?

WebVTT — вебформат: обов’язковий рядок WEBVTT на початку, базове оформлення <b>, <i> і <u> та налаштування репліки. Час записано як 00:00:01.250, а блоки NOTE, STYLE і REGION живуть поза репліками. Файли VTT читають браузери, HTML5-відео, YouTube і сучасні плеєри.

Чи зберігає VTT оформлення?

У VTT — базове оформлення: <b>, <i>, <u>, <c> і CSS-класи через ::cue. Це стосується саме оформлення; позиціювання й караоке — окремі виміри, і кожен із них треба перевіряти окремо.

Чи має кожна репліка VTT і початок, і кінець?

Так, у кожної репліки VTT є і початок, і кінець; початок записано як 00:00:01.250, кінець — окремим таким самим записом. Тому під час конвертації в інший формат тривалість не доведеться виводити з сусідніх реплік.

У які формати VTT можна конвертувати без втрат?

Жоден: VTT не містить чогось такого, що інший формат зберіг би без доповнень. Кожен перехід додає або генерує час, або втрачає частину моделі, і кожна сторінка перетворення називає свою втрату окремо.

Що VTT зберігає поза репліками?

Блоки NOTE, STYLE, REGION і налаштування після часу — усе це поза реплікою. Ці дані не є субтитрами в строгому сенсі, але без них файл втрачає частину змісту: саме тому під час конвертації вони потрапляють у список втрат, а не зникають мовчки.