Видео и субтитры · Инструментарий субтитров
WebVTT объяснил: от WebSRT к формату субтитров W3C для видео HTML5
· Фон
субтитры вебвтт форматы файлов обработка браузера
WebVTT был создан для того, чтобы браузеры могли отображать подписи изначально. В этом посте рассказывается о его происхождении как WebSRT, о том, чем он отличается от SRT, что добавляет спецификация и где он используется сегодня.
Зачем браузеру нужен собственный формат титров — появление нативного видео и отсутствие стандартного формата трека
Нативное видео давало веб-странице медиа-элемент, но синхронизированный текст по-прежнему нуждался в совместимом файловом представлении, которое браузеры могли бы получить и проанализировать. Неофициального файла SRT было недостаточно для функции браузера, требующей определенного синтаксиса, поведения сигналов и перехватчиков для представления. WebVTT предоставляет этот веб-контракт, сохраняя при этом узнаваемую форму сигнала и метки времени.
Этот контекст браузера объясняет как его знакомство, так и его дополнительную структуру. Минимальный VTT выглядит близко к SRT, но это не SRT с другим расширением. Подпись, отметка времени и грамматика сигналов являются частью принятия решения о том, получил ли браузер вообще WebVTT.
WebSRT и переименование в WebVTT — ранняя работа WHATWG и переход на W3C
Формат обсуждался под более ранним названием WebSRT, прежде чем стал WebVTT или текстовыми дорожками веб-видео. Эта линия передает путь проектирования: начните с широко известной формы блока субтитров, затем определите дополнительное поведение, необходимое для веб-медиа. В этой статье избегаются даты, имена редакторов и подробная хронология органов по стандартизации, поскольку эти факты не подтверждены материалами хранилища, использованными для заявлений о реализации.
Для фронтенд-разработчика важным уроком является то, что WebVTT — это определенные входные данные для мультимедийных функций браузера, а не соглашение, специфичное для игрока. Реализация должна ориентироваться на текущий синтаксис и тестироваться на проигрывателе-потребителе, а не зависеть от исторических меток.
Что спецификация добавляет к SRT — заголовок WEBVTT, идентификаторы вызовов, настройки вызовов и хуки стилей.
WebVTT добавляет обязательную подпись WEBVTT и разрешает идентификаторы сигналов, которые не обязательно должны быть числовыми. Настройки сигнала могут следовать за временем окончания, чтобы выразить выравнивание и размещение, а блоки NOTE, STYLE и REGION предоставляют метаданные и структуры представления, выходящие за рамки простого списка сигналов SRT. Хуки стилизации браузера затем могут обрабатывать отображаемые сигналы, не записывая текст в видео.
ToolAcre реализует сфокусированное подмножество. Он сохраняет настройки, обнаруженные после конечной метки времени, но удаляет идентификаторы сигналов и пропускает блоки NOTE, STYLE и REGION при загрузке. Этого достаточно для обычного преобразования и намеренно не является редактором без потерь для полной модели WebVTT.
Точка, заголовок и UTF-8 — небольшие различия, которые не позволяют файлу SRT быть действительным файлом VTT.
Три небольшие детали отделяют минимальный VTT от SRT. Первая строка должна содержать подпись WEBVTT, временные метки используют точку перед миллисекундами, а текст должен быть UTF-8. ToolAcre обнаруживает VTT путем проверки подписи, допуская при этом необязательный знак порядка байтов и ведущие пробелы; текст без этой подписи по умолчанию имеет значение SRT.
Сериализатор записывает подпись и пунктуацию, а не сохраняет все, что использовал источник. Ввод файла читается как UTF-8. Таким образом, SRT с устаревшей кодировкой может отображать символы замены перед преобразованием, а изменение синтаксиса контейнера не может восстановить байты, уже декодированные неправильно.
Где используется WebVTT — элемент трека HTML5, субтитры HLS и многие видеоплатформы.
WebVTT — это дополнительный формат, связанный с элементом видеодорожки HTML, который появляется в системах веб-доставки, использующих синхронизированный текст. Некоторые рабочие процессы потоковой передачи и платформы также используют WebVTT, но сведения о приеме относятся к месту назначения и должны проверяться там, а не вытекать из расширения. Действительный файл VTT по-прежнему может обслуживаться с неправильным типом носителя или блокироваться правилами доставки из разных источников.
Инструментарий создает файловое представление; он не настраивает страницу HTML, заголовки сервера или манифест потоковой передачи. Рассматривайте конверсию как один из этапов доставки и тестируйте реальный проигрыватель с теми же URL, заголовками и отношениями происхождения, которые будет использовать аудитория.
Чего это не касается — полную модель стилей и регионов, которую большинство файлов подписей никогда не использует.
Полная модель стиля и региона находится за пределами этого конвертера. Сложные селекторы сигналов, расположение регионов и политики представления заслуживают инструмента разработки с поддержкой WebVTT и тестирования браузера. Анализатор пропускает блоки STYLE и REGION, поэтому отправка такого мастера по этому пути удаляет их из любого вывода, а не сохраняет их невидимо.
Инструмент также переносит настройку сигнала в выходные данные SRT, хотя SRT не имеет определенного механизма воздействия на него. Это задокументированное ограничение является причиной сохранять исходный мастер VTT всякий раз, когда размещение важно, а не причиной предполагать, что каждый пункт назначения будет игнорировать дополнительный текст одинаковым образом.
Вывод: настоящий стандарт для Интернета — как Subtitle Toolkit создает следующий за ним WebVTT
WebVTT превращает знакомый шаблон синхронизированного текста в определенный веб-ввод. Подпись идентифицирует его, грамматика временных меток является канонической, а модель сигнала может содержать больше, чем простой последовательный текст. Subtitle Toolkit создает минимальный канонический файл из SRT, анализируя время до целых миллисекунд, затем записывая заголовок WEBVTT, разделители точек и реплики без строк идентификатора.
Сравните количество исходных и выходных сигналов и прочитайте все проблемы анализа, прежде чем прикреплять результат к проигрывателю. Если источник опирается на комментарии, регионы, блоки стилей или идентификаторы, выберите рабочий процесс, сохраняющий эти функции; целенаправленный преобразователь должен устанавливать эту границу, а не подразумевать полную точность передачи туда и обратно.