Как добавить субтитры в видео через Rendi: вшиваем SRT
Разбираем, как добавить субтитры в видео через Rendi: отправить SRT и MP4 в API, настроить оформление, дождаться результата и проверить готовый файл.

Ниже — практический разбор, как добавить субтитры в видео: взять утверждённый ролик и проверенный SRT, а на выходе получить MP4 с постоянными субтитрами, не разворачивая собственный сервер обработки видео. Rendi принимает обычный фильтр субтитров FFmpeg как API-задачу, возвращает идентификатор команды и после успешного рендера сохраняет готовый файл. Граница ответственности проста: сервис вжигает уже готовые субтитры в пиксели. Он не распознаёт речь и не проверяет правильность текста.
Коротко
Вшивайте SRT, если все зрители должны видеть одни и те же субтитры независимо от возможностей плеера. Оставляйте SRT отдельным файлом, если зрителю нужно отключать субтитры, выбирать язык или пользоваться встроенными функциями доступности.
Рабочая схема с Rendi выглядит так:
- Вместе проверить финальное видео и SRT.
- Разместить оба файла по URL, доступным для Rendi, либо сначала загрузить локальные файлы в Rendi.
- Отправить документированную FFmpeg-команду для субтитров.
- Опросить статус по идентификатору команды или принять итоговый результат через webhook.
- Проверить метаданные MP4 и полностью просмотреть результат, прежде чем отправлять следующие задачи.
Порядок важен. Кодировщик может успешно завершить работу, но результат всё равно окажется непригодным: субтитр появится раньше времени, имя будет написано неверно или текст перекроет интерфейс платформы.

Что именно делает Rendi
Rendi берёт на себя машинную обработку, но не редакторскую работу. Вы передаёте сервису ту же инструкцию FFmpeg, которую запустили бы локально, только через HTTP API. Запрос похож на производственный заказ: псевдонимы входов указывают, откуда забрать материалы, строка FFmpeg задаёт операцию, а псевдоним выхода называет готовый файл.
Актуальная схема запроса требует поля ffmpeg_command и output_files. Ключи входных файлов начинаются с in_, выходных — с out_; затем эти имена повторяются в команде между двойными фигурными скобками. После успешной отправки сервис возвращает command_id — идентификатор, по которому отслеживается задача.
В простейшем варианте видео и SRT находятся по публичным или временным подписанным HTTP-адресам, а в конце каждого адреса указано имя файла. Локальный путь на ноутбуке входным URL не считается. Для локальных файлов у Rendi есть отдельная multipart-загрузка с поддержкой файлов до 5 TB, но это самостоятельный подготовительный этап.
Вшитые субтитры и отдельная дорожка — не одно и то же
Вшитые субтитры становятся частью каждого декодированного кадра. Их оформление везде выглядит одинаково, зато решение становится необратимым: даже исправление опечатки потребует нового рендера, а зритель не сможет скрыть текст.
Отключаемая дорожка субтитров хранится отдельно от изображения. В собственном примере Rendi для отдельной дорожки в MP4 рекомендуется mov_text, а видеофильтр не используется. Так зритель сохраняет контроль, а текст не запекается в картинку.

Практическое правило простое: для мастер-копии на согласование или ролика для соцсетей используйте вшитые субтитры, когда важна визуальная идентичность. Исходный SRT всё равно нужно сохранить, а там, где важны доступность, поиск, перевод или выбор зрителя, стоит предоставить отключаемую дорожку либо отдельный файл.
Проверьте SRT до запуска рендера
Самый дешёвый повторный рендер — тот, которого удалось избежать. Сверяйте SRT именно с финальным монтажом, а не с предыдущим экспортом. Проверьте порядок реплик, время начала и конца, написание имён и чисел, осознанные переносы строк, а также характерные символы с диакритикой или из нелатинских алфавитов. Убедитесь, что субтитры не сталкиваются с плашками в нижней трети кадра и не прижаты к нижнему краю.
Не смешивайте этот этап с ИИ-транскрибацией. Распознавание речи может подготовить черновой SRT раньше по процессу, но сюда файл должен попасть только после того, как текст и тайминг одобрил человек или надёжная процедура проверки. Задача Rendi на этом этапе — рендеринг.
Как добавить субтитры в видео через Rendi
В этом примере на Node.js используются публичные тестовые файлы Rendi — видео и SRT, поэтому для запуска нужен только RENDI_API_KEY. Поля тела запроса и правила псевдонимов соответствуют актуальной OpenAPI-схеме Rendi. Параметры force_style задают белый текст с чёрной обводкой и отступом снизу, а libx264 и AAC создают MP4 по рецепту Rendi для субтитров.
const headers = {
"X-API-KEY": process.env.RENDI_API_KEY,
"Content-Type": "application/json",
};
const submit = await fetch("https://api.rendi.dev/v1/run-ffmpeg-command", {
method: "POST",
headers,
body: JSON.stringify({
input_files: {
in_video: "https://storage.rendi.dev/sample/big_buck_bunny_720p_16sec.mp4",
in_srt: "https://storage.rendi.dev/sample/subtitles.srt",
},
output_files: { out_1: "subtitled.mp4" },
ffmpeg_command:
"-i {{in_video}} -vf \"subtitles={{in_srt}}:force_style='FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=2,Shadow=0,MarginV=36'\" -c:v libx264 -crf 20 -c:a aac -b:a 192k {{out_1}}",
}),
});
if (!submit.ok) throw new Error(await submit.text());
const { command_id } = await submit.json();
for (;;) {
const poll = await fetch(
`https://api.rendi.dev/v1/commands/${command_id}`,
{ headers: { "X-API-KEY": process.env.RENDI_API_KEY } },
);
const job = await poll.json();
if (job.status === "SUCCESS") {
console.log(job.output_files.out_1);
break;
}
if (job.status === "FAILED") throw new Error(job.error_message);
await new Promise((resolve) => setTimeout(resolve, 2000));
}Фильтр субтитров изменяет кадры, поэтому видео приходится перекодировать. Стиль, кодек и качество можно настраивать, но каждое изменение создаёт новый результат, который снова нужно проверить. В официальной шпаргалке Rendi по FFmpeg также описаны пользовательские шрифты через fontsdir и FontName. Прежде чем применять шрифт ко всей библиотеке, протестируйте именно его и нужный набор символов.
Что именно было проверено
11 сентября 2026 года эндпоинт, поля запроса, правила псевдонимов, значения статусов и поля ответа из примера были сверены с актуальным OpenAPI-файлом Rendi. Тот же фильтр субтитров локально запустили в FFmpeg 8.0.1 на публичной тестовой паре Rendi — видео и SRT. В результате получился 16-секундный MP4 размером 1280 на 720 с видео H.264 и аудио AAC; в кадре на пятой секунде были видны ожидаемые субтитры.
Задача в облаке Rendi не отправлялась, потому что в окружении не было API-ключа Rendi. Код проверен по схеме, а операция FFmpeg — локально, но утверждать, что состоялся облачный запуск, нельзя.
Короткие задачи опрашивайте, для долгих используйте webhooks
Эндпоинт статуса Rendi может вернуть QUEUED, PROCESSING, PREPARED_FFMPEG_COMMAND, FAILED или SUCCESS. Принятый POST ещё не означает, что видео готово. Дождитесь конечного статуса, при сбое покажите error_message и обращайтесь к выходному файлу только после успеха.
Для задач, которые должны завершиться примерно за 30 секунд или быстрее, Rendi рекомендует опрос; для более долгих — webhook. Webhook передаёт те же данные завершённой команды, что и опрос. В рабочей системе обработчик завершения должен быть идемпотентным и быстро отвечать, а опрос стоит сохранить как резервный путь на случай, если доставка webhook в итоге не сработает.
Для чувствительных результатов на платном плане задайте is_private: true, а при опросе запросите предварительно подписанный URL. По умолчанию хранилище публичное. У приватного файла нет постоянного публичного адреса, а запрошенная ссылка для скачивания может действовать не более 7 дней.
Проверьте результат до пакетного запуска
SUCCESS подтверждает, что FFmpeg завершил работу. Качество субтитров этот статус не гарантирует. Проверить нужно и машиночитаемый ответ, и само изображение.
Сначала убедитесь, что output_files.out_1 существует, а его storage_url открывается. Сопоставьте полученные длительность, размеры кадра, кодек и формат файла с требованиями к результату. Затем посмотрите видео целиком, уделив особое внимание первой и последней репликам, самому быстрому диалогу, переносам строк, именам, числам, а также субтитрам рядом со склейками или графическими плашками.
Только после такой проверки тот же стилевой пресет можно ставить в очередь. Храните вместе ревизию исходного видео, ревизию SRT, FFmpeg-команду, идентификатор команды Rendi, идентификатор выходного файла и решение проверяющего. Такой журнал превращает набор рендеров в производственную систему.
Стоимость зависит от байтов, а не от минут
Rendi считает общий объём входных и выходных медиафайлов. В примере сервиса входной файл объёмом 1 GB и выходной объёмом 0.5 GB дают 1.5 GB обработки. При таких исходных данных лимита Free в 50 GB хватает на 33 полные задачи, после которых остаётся 0.5 GB; начального Pro с 250 GB — на 166 полных задач с остатком 1 GB.

Количество задач здесь получено арифметически из примера Rendi, а не из теста субтитров. Реальный MP4 с вшитыми субтитрами может оказаться больше или меньше в зависимости от исходника, настроек кодека и результата. Прежде чем прогнозировать объём, измерьте сумму входных и выходных файлов на собственном материале.
Free стоит $0 в месяц, включает 50 GB обработки и ограничивает время выполнения одной команды 1 минутой. Начальный Pro стоит $25 в месяц, включает 250 GB и повышает лимит команды до 10 минут. Полный разбор тарифов Rendi охватывает конфигурации с более мощными CPU и без ограничения времени, поэтому повторять здесь всю матрицу нет смысла.
Главное различие — в организации работы. Kapwing Pro указан по цене $16 за участника в месяц при оплате за год или $24 при ежемесячной оплате. Визуальный редактор удобнее для редких разовых задач. Rendi лучше подходит, когда финализация субтитров — повторяемый этап системы: его запускают утверждённые материалы, а результат отслеживается без необходимости снова открывать редактор.
Семь сценариев, где такой процесс полезнее всего
Лучший пользователь — не любой, кто добавляет субтитры, а команда с уже утверждённым SRT, которая постоянно повторяет финальный рендер.
Три продукта, которые стоит построить
1. Пакетная финализация субтитров в фирменном стиле
Это самая сильная возможность. Можно создать узкий портал для контент-команд и агентств: доступный URL видео, утверждённый SRT, именованный стилевой пресет, страница проверки и скачиваемый MP4. Такой продукт продаёт повторяемость и согласование, а не универсальный видеоредактор.
Около 1,900 поисковых запросов в месяц из США приходится на add subtitles to a video, а Kapwing Pro стоит от $16 за участника в месяц при годовой оплате. Спрос достаточно широк, чтобы привлекать пользователей, а повторяющийся командный процесс достаточно конкретен для специализированного продукта.
Минимальной продаваемой версии нужны входы по подписанным URL, проверка SRT, несколько зафиксированных фирменных пресетов, отправка в Rendi, обработка webhook, метаданные результата и решение человека — принять или отклонить. Слабое место — решение легко скопировать. Форму вокруг одного вызова FFmpeg повторить несложно. Устойчивая ценность должна строиться на истории согласований, повторно используемых правилах бренда, сопоставлении ревизий и надёжном восстановлении после сбоев.
2. API рендеринга субтитров для автоматизации
Предложите агентствам один стабильный эндпоинт, чтобы им не приходилось показывать клиентам синтаксис FFmpeg. Клиент отправляет URL видео, URL SRT, имя пресета и callback URL. Сервис преобразует пресет в проверенную команду и возвращает нормализованный результат задачи.
Burn subtitles into video получает 40 поисковых запросов в месяц из США при CPC $8.16. Объём мал, зато намерение предельно конкретно. Вопрос из блока PAA — “How can I permanently burn SRT subtitles into a video?” — почти дословно формулирует запрос к продукту.
Для MVP нужны аутентификация, валидация запросов, сопоставление задач Rendi, ключи идемпотентности, проверка webhook, устойчивое к повторам состояние и учёт использования. Слабое место — дистрибуция. Один лишь поиск бизнес не прокормит, а Rendi уже предоставляет базовый API. Обёртка должна выигрывать за счёт агентских интеграций, пресетов, наблюдаемости и поддержки.
3. Предпроверка субтитров и передача двух версий
Создайте этап согласования, который сверяет один SRT с одним финальным видео, а затем из утверждённой пары выпускает MP4 с вшитыми субтитрами для проверки и MP4 с отключаемой дорожкой для доставки. Покупатель — команда локализации, обучения или медиапроизводства, которая постоянно теряет связь между ревизией субтитров и версией монтажа.
Реальный вопрос PAA “How do I add SRT subtitles to a video?” в текущей выдаче соседствует с постоянной путаницей между постоянными и отключаемыми субтитрами. Продукт решает обе задачи, не заставляя оператора самостоятельно разбираться в механике контейнера.
Для MVP нужны разбор реплик, сопоставление длительности, предпросмотр безопасной зоны, идентификаторы ревизий, два контролируемых рецепта FFmpeg и запись об утверждении. Слабое место в том, что базовая проверка SRT — это функция, а не самостоятельная компания. История согласований и контроль передачи должны быть достаточно ценными, чтобы продукт остался частью процесса выпуска.
Ограничения и честный вывод
Rendi избавляет от необходимости поддерживать инфраструктуру FFmpeg для этого процесса, но не снимает редакторскую ответственность. Сервис не исправит расшифровку, плохой тайминг или неудачные переносы строк и не решит, подходят ли вшитые субтитры для обеспечения доступности.
Сделать вшивание без потерь тоже невозможно. Фильтр субтитров меняет видеокадры, поэтому видео перекодируется. Качество, время работы и размер результата зависят от команды и исходника. Стандартный защитный лимит API равен 300 секундам, а максимальное доступное значение задаётся тарифом. Для долгой или ресурсоёмкой задачи нужен тариф, чей лимит выполнения команды соответствует реальному кодированию.
Не выбирайте этот путь для одного неформального ролика, если задачу уже решает бесплатный браузерный инструмент. Не вшивайте субтитры, если зрителю нужно их отключать. Не запускайте пакетную обработку с непроверенным стилем. Сила Rendi проявляется там, где одно и то же утверждённое правило финализации должно надёжно работать для множества материалов.
Что сделать в понедельник
Возьмите одно короткое утверждённое видео и его финальный SRT. Разместите оба файла по доступным для загрузки URL, отправьте тело запроса из примера с выбранным стилем, проверьте полученные метаданные и полностью посмотрите MP4 на самом маленьком поддерживаемом экране. Сохраняйте принятую команду как пресет только после этой проверки. Затем подключите пресет к той точке рабочего процесса, где видео и субтитры уже получают статус утверждённых.
Как навсегда вшить SRT-субтитры в видео?
Используйте видеофильтр FFmpeg subtitles, чтобы отрисовать текст в каждом кадре, а затем закодируйте новое видео. В Rendi сопоставьте исходное видео и SRT с псевдонимами in_, имя MP4 — с псевдонимом out_, отправьте команду и дождитесь SUCCESS, прежде чем скачивать и проверять файл.
Как вшить субтитры в видео?
Начните с финального видео и утверждённого файла субтитров. Вшивайте текст, если он должен быть виден всегда. Выбирайте отдельную дорожку, если субтитрами должен управлять зритель. Документированный путь Rendi для вшивания использует -vf subtitles={{in_srt}} и перекодирует видео.
Как добавить SRT-субтитры в видео?
SRT можно либо вшить в пиксели, либо подключить как отдельную дорожку субтитров. Вшивание обеспечивает одинаковый вид везде, но отключить текст нельзя. Мягкая дорожка остаётся редактируемой и отключаемой. В документации Rendi описаны и фильтр subtitles для вшивания, и mov_text для отключаемой дорожки MP4.
Как вшить субтитры в видео через HandBrake?
В HandBrake можно подключить внешний SRT в настольном интерфейсе и отметить его как вшиваемый. Для редких ручных задач это разумный выбор. Rendi решает другую задачу: позволяет отправить эквивалентную операцию FFmpeg через API, когда рендер является частью автоматизированной системы.
Если такой проверенный медиапроцесс нужен вашему бизнесу, посмотрите системы производства с ИИ.
- Последнее обновление
- 11 сент. 2026 г.
- Категория
- Build







