Субтитри WebVTT (.vtt)

W3C Стандарт

Web Video Text Tracks (WebVTT): це офіційний вебстандарт W3C для субтитрів, текстових підписів і описів розділів, інтегрований у відеоелементи HTML5 (<track>) та сучасну технологію потокового мовлення через HTTP (HLS).

Конвертувати з SRT у VTT

Безкоштовний конвертер з SRT у VTT у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли WebVTT, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли WebVTT, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

57 45 42 56 54 54

ПОДАННЯ В ASCII: WEBVTT

Стандартизація: W3C WebVTT Recommendation

Технічні характеристики

Архітектура контейнераТекстовий файл UTF-8, що починається із сигнатури «WEBVTT», за якою можуть іти блоки STYLE та NOTE, а потім послідовні блоки реплік
СтисненняНестиснений звичайний текст (зазвичай стискається під час передавання HTTP за допомогою Gzip або Brotli)
Порядок байтів (Endianness)Текстовий потік UTF-8
Колірні просториПовна підтримка CSS Color Module Level 4 у стилях реплік
Канали та структураРепліки з часовими мітками, оцінка достовірності розпізнавання мовлення, стилі CSS та налаштування позиції на екрані
Максимальні розміриНеобмежена кількість послідовних реплік
ПрозорістьПовна підтримка непрозорості CSS і прозорості альфа-каналу через псевдоелемент «::cue»
Потокове та прогресивне завантаженняВбудоване потокове відтворення в елементах HTML5 <video> та маніфестах прямих трансляцій HLS / DASH

Технічна матриця порівняння: WebVTT проти конкурентів

Технічний атрибутWebVTT (Поточний)SRTASSSUB
Інтеграція у веб HTML5100% вбудований стандарт (<track>)Потребує конвертації через JSПотребує WebAssemblyПотребує конвертації
Стилізація CSSПовна вбудована підтримка стилів CSS (::cue)Лише базові теги HTMLВласні пропрієтарні теги для перевизначення стилівВідсутня
Потокове мовлення HLS / DASHWebVTT використовують для доріжок синхронізованого тексту у відео браузера та деяких потокових списках відтворення; підтримка програвача залежить від формату доставлення.Підтримується через мультиплексуванняОбмежена підтримка трансляційВідсутня
Обов’язковий заголовокТочний службовий текст «WEBVTT» у першому рядкуЗаголовок не потрібенСекція [Script Info]Заголовок не потрібен

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Помилка в консолі браузера: 'Malformed WebVTT file: Missing WEBVTT signature'.

Першопричина: Відсутній рядок 'WEBVTT' на першому рядку або наявність порожніх рядків перед заголовком.

Відновлення: Додайте 'WEBVTT\n\n' на початок файлу за допомогою конвертера субтитрів File2File.app Subtitle Converter.

Аналіз безпеки та векторів атак на парсери

Засоби розбору WebVTT у браузерах обробляють недовірені репліки субтитрів. Якщо вставити їх у DOM без очищення, це може призвести до міжсайтового скриптингу (XSS).

Відомі вектори атак

  • XSS-ін'єкція через неочищений HTML-вміст реплік субтитрів, вставлений у DOM відеоплеєра.
  • Підробка запитів на сервері (SSRF) під час автоматизованої генерації мініатюр субтитрів на серверах.
  • Відмова в обслуговуванні через неправильно сформовані CSS-селектори реплік субтитрів.

Рекомендації щодо захисту: Покладайтеся на вбудоване відтворення в браузері за допомогою <track> та очищуйте вміст реплік субтитрів перед ручним вставленням у DOM.

Історичне походження та віхи

2019W3C офіційно просуває формат WebVTT: The Web Video Text Tracks Format до статусу запропонованої рекомендації (Proposed Recommendation).
2011Перейменовано з WebSRT на WebVTT для встановлення чіткого стандарту W3C, окремого від класичного SubRip.
2010WHATWG представляє WebVTT, щоб додати вбудовану підтримку субтитрів до елемента HTML5 <video>.

Основні переваги

  • Елемент HTML <track> використовує WebVTT для субтитрів і підписів. Браузери відображають час і стилі cue через відеопрогравач, хоча підтримувані функції можуть відрізнятися.
  • Потужна підтримка стилів CSS: налаштовуйте кольори, шрифти, фони та позиціювання за допомогою вбудованого псевдоелемента CSS «::cue».
  • Сервіси HLS і MPEG-DASH можуть передавати доріжки субтитрів WebVTT разом із сегментами відео. Перевірте, чи підтримує цільовий програвач пакування субтитрів у списку відтворення та мовні доріжки.

Технічні обмеження та недоліки

  • Сувора вимога до заголовка: файл має починатися з точного тексту 'WEBVTT' у самому першому рядку, інакше браузери відхилять його.
  • Крапка як роздільник мілісекунд ('00:01:20.500') вимагає конвертації із застарілих файлів SRT, розділених комами.
  • Старіші апаратні медіаплеєри (наприклад, дешеві USB-медіабокси) часто не мають вбудованої підтримки WebVTT.

Цікаві технічні факти

  • Кожен дійсний файл WebVTT повинен починатися з точного слова 'WEBVTT' на першому рядку; будь-який інший текст змусить браузери ігнорувати файл.
  • Формат WebVTT спочатку називався 'WebSRT', оскільки він був навмисно розроблений так, щоб виглядати майже ідентично класичним субтитрам SRT.
  • WebVTT також може використовуватися для розділів відео та інтерактивних мініатюр-підказок під час наведення курсора на панель прокручування відео.

Поширені технічні запитання

Для чого використовується WebVTT?

WebVTT: це офіційний вебстандарт для додавання субтитрів, текстових підписів, розділів і описів до елементів HTML5 <video> на вебсайтах.

Як конвертувати субтитри SRT у WebVTT?

Ви можете конвертувати субтитри SRT у чистий файл WebVTT в один клік за допомогою File2File.app безпосередньо у своєму браузері.

Чому мої субтитри WebVTT не відображаються у браузері?

Переконайтеся, що ваш файл починається з рядка 'WEBVTT' у рядку 1, після нього є порожній рядок, а ваш вебсервер віддає його із заголовком 'Content-Type: text/vtt'.