Главное
Файл SRT (SubRip Subtitle, расширение
.srt) — это обычный текстовый файл субтитров: пронумерованные блоки, в каждом из которых время начала и конца в видечасы:минуты:секунды,миллисекундыи текст для показа. В нём нет ни видео, ни звука, он открывается в любом текстовом редакторе и принимается почти каждым плеером и видеоплатформой. Его можно написать вручную, сгенерировать из обычного текста или экспортировать из транскрипта, а затем проверить валидатором перед загрузкой.
Если вы когда-нибудь включали субтитры в видеоплеере, велика вероятность, что работал файл SRT. Это один из старейших форматов субтитров, которым до сих пор пользуются каждый день, и один из простейших форматов файлов вообще — именно поэтому он повсюду.
На этой странице весь формат собран в одном месте: что внутри файла, точные правила для каждой части с первоисточниками, как создать и починить файл и чем он отличается от WebVTT.
Как выглядит файл SRT изнутри?
Файл SRT — это список реплик, и у каждой реплики одни и те же четыре части: порядковый номер, строка времени, одна-две строки текста и пустая строка. Откройте любой файл .srt в «Блокноте» или TextEdit — и увидите блоки вроде этих:
1
00:00:01,600 --> 00:00:04,200
С возвращением на канал.
2
00:00:04,400 --> 00:00:07,900
Сегодня разберём, как на самом деле
устроены файлы субтитров.
3
00:00:08,100 --> 00:00:10,000
<i>(дверь закрывается)</i>Читая сверху вниз, вторая реплика говорит: показать эти две строки с 4,4 секунды по 7,9 секунды видео. Здесь нет ни заголовков, ни раздела стилей, ни двоичных данных, поэтому файл остаётся маленьким и переживает открытие, правку и сохранение почти любой программой.
Каковы правила формата SRT?
Ближе всего к справочнику по SubRip — описания, которые ведут архивы и контейнерные форматы. Описание формата в Библиотеке Конгресса задаёт тайм-код как часы:минуты:секунды,миллисекунды, записываемые 00:00:00,000, со стрелкой --> между началом и концом, а документация по субтитрам Matroska описывает тот же четырёхчастный блок.
| Часть | Правило | Пример |
|---|---|---|
| Порядковый номер | Целое число в отдельной строке, начиная с 1 и по возрастанию | 2 |
| Строка времени | Начало и конец в виде часы:минуты:секунды,миллисекунды, разделённые --> с пробелом с каждой стороны | 00:00:04,400 --> 00:00:07,900 |
| Разделитель миллисекунд | Запятая, а не точка; точка относится к WebVTT | ,400 |
| Текст | Одна или несколько строк, показываемых вместе; перенос строки в файле — это перенос строки на экране | Сегодня разберём, как на самом деле |
| Пустая строка | Завершает реплику; следующий номер начинает следующую | (пустая строка) |
| Форматирование | Простые теги вроде <i>, <b> и <u>, которые многие плееры учитывают, а другие игнорируют | <i>(дверь закрывается)</i> |
Две мелочи ломают больше файлов, чем всё остальное вместе. Первая — запятая: строка времени, записанная с точками, 00:00:04.400, — привычка WebVTT, и некоторые инструменты не принимают её в SRT. Вторая — пустая строка: если у реплики нет пустой строки, она сливается со следующей, и плеер либо объединяет их, либо отбрасывает одну.
Кодировка
Сохраняйте файлы SRT в UTF-8. Она охватывает все письменности, от латиницы с диакритикой до арабского, китайского и эмодзи, и именно её ожидают современные плееры. Файлы из старых инструментов Windows иногда бывают в региональной устаревшей кодировке, из-за чего русские буквы превращаются в вопросительные знаки или строки странных символов. Пересохранить файл в UTF-8 в текстовом редакторе — и всё исправится. Некоторые программы также добавляют в начало файла UTF-8 невидимую метку порядка байтов; большинство плееров её игнорируют, но если строгий инструмент отвергает первую реплику, первое, что стоит попробовать, — сохранить в UTF-8 без метки.
Длина строки — правило чтения, а не формата
Сам формат не ограничивает длину строки; это делают руководства по стилю. Описание Библиотеки Конгресса упоминает предел в 32 символа на строку, BBC Subtitle Guidelines задают 37 символов для вещания, а Netflix English (USA) Timed Text Style Guide допускает 42 символа в строке и не более двух строк. Плеер всё равно покажет более длинную строку, обычно перенеся её, так что предел касается того, успеют ли люди прочитать субтитр, а это проверка скорости чтения в нашем валидаторе SRT измеряет по выбранному вами руководству.
Для чего используют файлы SRT?
- Видеоплатформы: загрузите SRT вместе с видео — и зрители получат субтитры, которые можно включить.
- Компьютерные и телевизионные плееры: VLC и многие другие плееры загружают SRT, лежащий рядом с видеофайлом под тем же именем.
- Перевод: переводчики заменяют строки текста, не трогая тайминг, и получают по одному SRT на каждый язык.
- Программы монтажа: распространённые видеоредакторы импортируют SRT как дорожку субтитров.
- Доступность: субтитры для глухих и слабослышащих зрителей, с описаниями звуков в скобках и именами говорящих, помещаются в строки текста обычного SRT.
Как создать файл SRT?
Автоматически из видео
Для видео на YouTube вставьте ссылку в инструмент транскрипта YouTube и нажмите SRT на странице транскрипта: тайминг берётся из собственных субтитров видео. Для ваших собственных записей и файлов приложение SozAI расшифровывает звук на 99 языках и экспортирует субтитры.
Из уже имеющегося текста
Если у вас есть сценарий или транскрипт в виде обычного текста, бесплатный генератор TXT в SRT превращает каждый абзац в реплику и назначает ей длительность по длине текста — из расчёта 150 слов в минуту, не короче 2 секунд и не длиннее 8. Сначала разбейте длинные абзацы: реплика длиннее 20 слов упирается в потолок 8 секунд и выходит слишком быстрой для чтения. Он работает в вашем браузере, и ничего не загружается.
Вручную
Для короткого ролика написать SRT в текстовом редакторе вполне разумно: следуйте четырёхчастному блоку, сохраните как subtitles.srt в UTF-8 — и готово. Дальше минуты-двух видео расставлять время вручную утомительно, и один из двух способов выше окажется быстрее.
Почему мой файл SRT не работает?
| Проблема | Обычная причина | Решение |
|---|---|---|
| Субтитры не показываются вовсе | Неверное расширение, неверная кодировка или повреждённая строка времени | Прогоните файл через валидатор SRT — он назовёт сломанный блок |
| Субтитры раньше или позже на одну и ту же величину | В видео есть заставка или склейка, о которых файл не знает | Сдвиньте все тайм-коды сразу с помощью инструмента сдвига времени субтитров |
| Субтитры всё сильнее расходятся с видео по ходу воспроизведения | Файл рассчитан на другую частоту кадров, например 23,976 вместо 25 | Смотрите почему субтитры уходят из синхронизации |
| Буквы выглядят «кракозябрами» | Сохранено в устаревшей кодировке | Пересохраните в UTF-8 |
| Платформа отклоняет файл | Она ожидает WebVTT | Конвертируйте с помощью конвертера VTT и SRT |
Чем SRT отличается от WebVTT и покадрового таймкода?
WebVTT (.vtt) — формат W3C, который используют видеоплееры HTML5. Спецификация W3C WebVTT записывает миллисекунды после точки тремя цифрами и делает часы необязательными, а файл начинается со строки-заголовка WEBVTT; он также добавляет позиционирование и стили, которых нет в SRT. Время — это один и тот же момент, записанный по-разному, так что преобразование одного в другое — вопрос пунктуации и заголовков, подробнее об этом в материале VTT и SRT.
Видеомонтажёры считают время в кадрах, а не в миллисекундах, как таймкод SMPTE, HH:MM:SS:FF. SRT хранит реальное время, поэтому когда субтитры делают по таймкоду монтажа, результат определяет частота кадров: при 29,97 кадра в секунду час таймкода non-drop на 3,6 секунды длиннее в реальном времени, чем говорит метка. Наш конвертер таймкодов превращает таймкод SMPTE, включая drop-frame, в метки времени SRT и обратно.
Если вам нужны слова без какого-либо тайминга, инструмент «Субтитры в текст» убирает номера и тайм-коды из SRT или VTT и оставляет читаемые абзацы.

