Субтитры SRT из готового текста

8 сентября 2026 5 минут чтения Видео

Что на самом деле мешает

Расшифровка уже есть. Она лежит одним куском в заметках, в документе или в окне распознавания речи — сплошной абзац без единого переноса. Видеоредактору такой текст бесполезен: он ждёт файл, где каждая реплика пронумерована и привязана ко времени. Ручная сборка означает, что вы сидите и печатаете шестизначные таймкоды для каждой из двух сотен фраз пятиминутного ролика.

Задача при этом делится надвое, и путать половины не стоит. Первая половина механическая: нарезать текст на куски подходящей длины и разложить их по временной сетке в правильном синтаксисе. Вторая содержательная: подвинуть каждый блок под настоящую речь, где есть паузы, вдохи и места, в которых диктор ускоряется. Автоматика закрывает первую половину целиком и не трогает вторую. Понимание этой границы избавляет от разочарования на выходе.

Как устроен SRT изнутри

Формат стоит показать, потому что он проще, чем кажется, и знание структуры экономит время при любой правке. Блок состоит из четырёх строк:

1
00:00:00,000 --> 00:00:03,500
Привет всем. Сегодня разберём субтитры.

2
00:00:03,500 --> 00:00:07,000
Начнём с того, как выглядит сам файл.

Первая строка — порядковый номер, целое число начиная с единицы, без пропусков. Вторая — время появления и время исчезновения, разделённые последовательностью «пробел, два дефиса, знак больше, пробел». Формат времени жёсткий: часы, минуты, секунды по две цифры, затем запятая и три цифры миллисекунд. Не точка: точка используется в родственном формате WebVTT, и SRT-парсер на ней спотыкается. Дальше идёт сам текст, одна или несколько строк, и завершает блок пустая строка.

Нумерация нужна парсеру для порядка блоков, но фактическую последовательность на экране задают именно таймкоды. Если вы вырезали один блок из середины и не перенумеровали остальные, большинство плееров это переживёт; строгий валидатор при загрузке на площадку может и придраться, поэтому нумерацию лучше держать сплошной.

Всё. Никаких заголовков, никакой служебной шапки. Файл — обычный текст, и его можно открыть блокнотом и поправить руками.

Сборка через инструмент

Открываете генератор субтитров из текста. Страница называется «Обычный текст в SRT» и состоит из двух секций — «Ввод» и «Результат».

  1. Вставьте расшифровку в поле «Обычный текст». Разметка не нужна, переносы строк схлопываются: скрипт сводит любую последовательность пробелов и переводов строки к одному пробелу и дальше работает со списком слов.
  2. Задайте «Макс. символов в субтитре». По умолчанию стоит 84. Это верхняя граница длины блока, а не цель: очередное слово добавляется в текущий блок, пока результат укладывается в лимит, иначе слово открывает следующий блок. Слова пополам не рвутся никогда.
  3. Задайте «Секунд на субтитр». По умолчанию 3.5, поле принимает дробное значение.
  4. Нажмите «Сгенерировать». В секции «Результат» появится готовый SRT.
  5. Под результатом две кнопки — «Копировать» и «Download». Вторая отдаёт файл сразу с именем subtitles.srt, так что подставлять расширение вручную не требуется.
  6. Кнопка «Сбросить» возвращает поля к значениям по умолчанию перед следующим сценарием.

Про тайминги честно: сетка равномерная. Блок с номером N начинается на отметке, равной произведению его порядкового номера без единицы на заданную длительность, и заканчивается ровно там, где начинается следующий, — зазоров между репликами нет. При 3.5 секундах на блок двадцатый субтитр стартует на 01:06,500 независимо от того, что происходит на дорожке. Совпадение с речью в начале ролика будет приличным, к пятой минуте разойдётся на секунды. Это стартовая сетка для перетаскивания в монтажке, а не результат распознавания.

Что подобрать под ролик

Два числа связаны между собой скоростью чтения. Комфортный ориентир — около 15-17 символов в секунду для взрослого зрителя. Отсюда 84 символа просят примерно пять секунд экранного времени, а не 3.5. Если оставить оба значения по умолчанию, плотные блоки будут мелькать быстрее, чем читаются.

Рабочие пары выглядят так. Горизонтальное видео на большом экране: 60-70 символов при 4 секундах. Вертикальные ролики с крупным кеглем: 40-50 символов при 2-2.5 секундах — длинная строка там переносится в три-четыре ряда и уезжает под интерфейс платформы, под кнопки лайка и описание.

Есть и третий множитель, о котором забывают: длина блока задаётся в символах, а не в словах. Русский текст в среднем длиннее английского на четверть, поэтому лимит, подобранный по английскому сценарию, на переводе даст блоки, вылезающие за границу кадра. Проверяйте на самом длинном абзаце, а не на первых двух фразах.

Обратная операция тоже существует: если у вас на руках чужой SRT и нужен голый текст для описания или перевода, его снимает инструмент удаления таймкодов. Остальное по работе с видео лежит в разделе видеоинструментов.

Ошибки, которые стоят перезалива

Кодировка не UTF-8. Единственная по-настоящему частая причина, по которой правильный файл не читается. Сохранение в windows-1251 превращает кириллицу в вопросительные знаки и кракозябры уже в плеере. Если сохраняете вручную из редактора, выбирайте UTF-8 и следите, чтобы редактор не добавил BOM в начало файла: три невидимых байта перед единицей ломают номер первого блока в части парсеров.

Точка вместо запятой в миллисекундах. Возникает, когда таймкоды правят руками или переносят из VTT. Внешне строка выглядит нормально, а блок молча пропадает.

Слипшиеся блоки. Пустая строка между блоками обязательна. Если при копировании из окна результата пустые строки схлопнулись, часть парсеров склеит два блока в один и потеряет второй таймкод. Проще нажать «Download» и не проверять.

Ожидание автоматической разбивки на две строки. Инструмент кладёт весь блок одной строкой. Разбить длинную реплику на два ряда так, чтобы перенос попал по смыслу, — задача редактора субтитров, здесь этого нет.

Расшифровка не почищена перед вставкой. Если текст приехал из автосубтитров, в нём остались повторы фраз на стыках блоков и отсутствуют точки. Генератор режет что дали, поэтому чистить лучше до, а не после: снять служебный мусор помогает чистка расшифровки с YouTube.

Слишком мелкая нарезка. Соблазн поставить 30 символов, чтобы блоки точно влезли, оборачивается сотнями блоков по одной-две строки. Зритель не успевает дочитать до смены кадра, а вы получаете вдвое больше объектов для ручной подгонки. Ниже 40 символов опускаться стоит только для очень крупного кегля.

⏱️ Текст в SRT онлайн — генератор субтитров Разбиваем сплошной текст на пронумерованные блоки SRT с таймкодами: задайте максимум символов в субтитре и секунды на блок, заберите файл для монтажки.
Запустить →
Можно ли получить точные тайминги без ручной правки?

Нет. Для этого нужно распознавание речи с привязкой ко времени, а здесь считается арифметика по заданной длительности блока. Ролик на пять минут после импорта потребует минут пяти-семи на подгонку блоков по звуковой волне — всё равно быстрее, чем набирать двести таймкодов с нуля.

Куда уходит вставленный текст?

Никуда. Разбиение и расчёт времени выполняет скрипт страницы прямо во вкладке, сетевого запроса с содержимым текста нет. Черновик сценария невышедшего ролика можно вставлять спокойно.

Что делать, если общая длительность не совпала с роликом?

Посчитайте нужное значение обратно. Разделите длительность речи в секундах на число блоков в результате и подставьте полученное в «Секунд на субтитр», затем сгенерируйте заново. Начало и конец сойдутся, останется поправить середину.

Поддерживается ли кириллица и эмодзи?

Да, любой юникодный текст обрабатывается одинаково, а эмодзи считаются обычными символами при подсчёте лимита. Отрисовка эмодзи зависит от плеера: часть десктопных показывает вместо них пустые квадраты.

Подойдёт ли результат для загрузки на YouTube?

Да, это обычный SRT, и загрузчик субтитров его принимает. Но именно на YouTube равномерная сетка заметна сильнее всего, потому что зритель видит текст вместе со звуком в одном окне. Подгонку блоков лучше сделать до загрузки.