Формат SRT — субтитровый файл¶
SRT (сокр. от англ. SubRip Subtitle) — текстовый формат файлов субтитров, используемый для хранения субтитров к видеофайлам. Файлы с расширением .srt представляют собой обычные текстовые документы в кодировке (чаще всего UTF-8), содержащие последовательность пронумерованных блоков: номер субтитра, временные метки начала и конца показа, строка или несколько строк текста. Формат является одним из наиболее распространённых и поддерживается практически всеми современными видеоплеерами, редакторами субтитров и стриминговыми платформами.
¶Структура файла
Файл SRT состоит из повторяющихся блоков, разделённых пустой строкой. Каждый блок имеет строго определённый вид:
``` 1 00:00:01,000 --> 00:00:04,000 Первая строка субтитра Вторая строка субтитра
2 00:00:05,500 --> 00:00:08,200 Текст следующего субтитра ```
Элементы блока:
- Номер — порядковый номер субтитра, начинается с единицы, увеличивается на единицу с каждым следующим блоком.
- Строка времени — два временных значения, разделённые стрелкой
-->. Формат времени:ЧЧ:ММ:СС,ммм, где часы, минуты и секунды разделены двоеточиями, а миллисекунды — запятой. Первое значение обозначает момент появления субтитра на экране, второе — момент его исчезновения. - Текст — одна или несколько строк с содержанием субтитра. Поддерживается разметка тегов:
<i>(курсив),<b>(жирный),<u>(подчёркивание),<font>(шрифт и цвет), а также теги позиционирования.
¶История
Формат появился в конце 1990-х годов в среде пользователей Windows и был связан с программой SubRip — утилитой для извлечения субтитров из видеопотока DVD с помощью оптического распознавания текста (OCR). Название формата является сокращением от названия этой программы. Простота текстового представления и отсутствие проприетарных ограничений быстро сделали SRT де-факто стандартом для обмена субтитрами в интернете.
На основе SRT были разработаны расширенные форматы: SubStation Alpha (.ssa) и его улучшенная версия Advanced SubStation Alpha (.ass), поддерживающие более сложное позиционирование, стили и анимацию. Тем не менее SRT сохраняет популярность благодаря максимальной простоте и совместимости.
¶Кодировка и локализация
Исторически файлы SRT часто сохранялись в кодировке Windows-1251 (для русскоязычных субтитров) или Windows-1252. Современные программы, как правило, используют UTF-8, что позволяет корректно отображать символы любых языков. Некорректная кодировка приводит к «кракозябрам» при отображении текста — распространённая проблема при совместном использовании файлов SRT.
¶Поддержка и совместимость
Формат SRT поддерживают:
- Видеоплееры: VLC media player, MPC-HC, Windows Media Player (с дополнительными кодеками), mpv, IINA, KMPlayer и большинство аппаратных приставок.
- Онлайн-платформы: YouTube (при загрузке отдельного файла субтитров), Vimeo, множество стриминговых сервисов.
- Мобильные устройства: плееры для Android и iOS, встроенные проигрыватели многих смартфонов.
- Редакторы субтитров: Aegisub, Subtitle Edit, Jubler, Visual SubSync и другие.
Для показа субтитров файл SRT должен лежать в той же папке, что и видеофайл, и иметь то же имя (например, video.mp4 и video.srt), либо быть загружен вручную через меню плеера.
¶Ограничения
Формат SRT не поддерживает:
- сложное позиционирование текста на экране (за исключением базовых тегов);
- встроенные стили и шрифты;
- синхронизацию с несколькими дорожками субтитров в одном файле;
- тайм-коды с точностью лучше миллисекунды.
Для задач, требующих расширенных возможностей, используют форматы ASS/SSA, WebVTT (.vtt) или TTML.
¶Программная обработка
Простая текстовая структура SRT делает формат удобным для программной обработки. Существуют библиотеки для парсинга и генерации SRT-файлов на разных языках программирования (Python, JavaScript, C# и других). Автоматическое распознавание речи (например, Whisper от OpenAI) может генерировать субтитры в формате SRT, что широко применяется для локализации видео и создания транскриптов.
Источники:
- SubRip — Википедия
- SubStation Alpha — Википедия
- WebVTT — спецификация W3C
- Subtitle Edit — документация проекта
- VLC media player — официальная документация
