Конвертеры данных · 5 минута чтения
От SRT до VTT: субтитры, которые фактически загружает браузер.
Видеоэлемент HTML5 с радостью проигнорирует файл SRT: элемент браузера `<track>` загружает WebVTT и ничего больше. Таким образом, преобразование SRT в VTT является обычным шагом при публикации видео в Интернете, и различия между двумя форматами меньше, чем можно было бы ожидать, и именно поэтому преобразование стоит понять, а не рассматривать как черный ящик.
Обновлено
Что меняется между SRT и VTT
- Заголовок — файлы WebVTT начинаются со строки `WEBVTT`, возможно, с заголовком после нее.
- Таймкоды — SRT записывает `00:00:12,500` с запятой перед миллисекундами; VTT записывает `00:00:12.500` с точкой.
- Идентификаторы сигнала — оба допускают необязательное имя над сигналом; VTT сохраняет их более полезными для сценариев.
- Конечные таймкоды — требуются в SRT; VTT может сделать вывод об окончании следующей реплики, хотя явный вариант безопаснее.
- Дополнительные функции — VTT добавляет настройки метки, такие как положение линии, выравнивание и текстовая разметка.
Стилизация и безопасная разметка
WebVTT допускает ограниченный набор тегов внутри вызова — `<b>`, `<i>`, `<u>` и `<c.classname>` для классов, которые вы оформляете с помощью CSS через `::cue`. Все остальное, скорее всего, будет отображаться как обычный текст. Именно поэтому преобразование должно сохранять простое форматирование, если оно присутствует, и отбрасывать то, что формат не может выразить, а не экранировать разметку в видимых угловых скобках.
WEBVTT
00:00:12.500 --> 00:00:15.000 align:start
That was the point.
Почему это важно помимо воспроизведения
Субтитры являются требованием доступности на большинстве платформ, а также являются индексируемым материалом: текстовая дорожка предоставляет поисковым системам и помощникам машиночитаемый сценарий, который сам по себе звук не обеспечивает. Таким образом, правильно закодированный `<track kind="captions">` выполняет двойную функцию: обеспечивает соответствие требованиям и придает видео присутствие текста, которого в противном случае ему не хватало бы.
Кодировка имеет значение: используйте VTT как UTF-8 с соответствующей кодировкой. Файл с диакритическими символами, сохраненный в устаревшей кодировке, будет отображаться в плеере как моджибаке и будет выглядеть как ошибка преобразования, а не ошибка кодирования.
Практический рабочий процесс
- Преобразуйте SRT в VTT и проверьте первую и последнюю реплику на наличие правильных таймкодов.
- Сохраните как UTF-8 с расширением .vtt и используйте его с типом контента text/vtt, где вы управляете сервером.
- Ссылайтесь на него из элемента видео с помощью `<track kind="captions" srclang="en" label="English" default>`.
- Загрузите файл титров вместе с видеофайлом, чтобы относительные пути продолжали работать после развертывания.
Оффлайн и мгновенно
Файлы субтитров представляют собой большие текстовые документы и часто являются неизданными произведениями — сценарий обзорной версии никуда не следует загружать. Конвертер SRT в VTT на этом сайте работает в браузере, поэтому двухчасовая расшифровка преобразуется за долю секунды, не покидая вашего компьютера.
от SRT до VTT — часто задаваемые вопросы
Почему мой видеоплеер игнорирует файл субтитров?
Почти всегда потому, что это файл SRT, а не WebVTT. HTML5 `<track>` принимает только VTT. Преобразуйте в VTT, убедитесь, что файл начинается со строки WEBVTT, затем убедитесь, что в тайм-кодах используются точки, а не запятые.
Нужен ли YouTube и другим платформам VTT?
YouTube принимает загрузки как SRT, так и VTT и преобразует их внутри, но большинству самостоятельных проигрывателей и каждому видеоэлементу HTML5 требуется WebVTT. Преобразование перед загрузкой обеспечивает одинаковое отображение субтитров везде.
Можно ли стилизовать WebVTT?
Да — внутри ключевого текста вы можете использовать теги, выделенные жирным шрифтом, курсивом и подчеркиванием, а также диапазоны классов, а также стилизовать классы с помощью CSS с помощью псевдоэлемента `::cue`. Позиционирование контролируется с помощью настроек метки, таких как линия, положение и выравнивание.
Инструменты, упомянутые в этом посте
Еще статьи для чтения
5 минута чтения
Таблицы Markdown: генерируйте их вместо подсчета труб
Создавайте таблицы уценки со вкусом GitHub из строк или электронных таблиц — выравнивание, экранирование каналов и случаи, когда таблица является неправильным выбором для вашего README.
6 минута чтения
JSON форматтер: красивый, минимизированный и действительно
Средство форматирования JSON, которое красиво печатает, минимизирует и проверяет точные местоположения ошибок, а также пять синтаксических ошибок, стоящих почти за каждой недопустимой ошибкой JSON.