Как добавить субтитры в видео через Rendi: вшиваем SRT

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

Friday, September 11, 2026Omid Saffari
Как добавить субтитры в видео через Rendi: вшиваем SRT

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

Коротко

Вшивайте SRT, если все зрители должны видеть одни и те же субтитры независимо от возможностей плеера. Оставляйте SRT отдельным файлом, если зрителю нужно отключать субтитры, выбирать язык или пользоваться встроенными функциями доступности.

Рабочая схема с Rendi выглядит так:

  1. Вместе проверить финальное видео и SRT.
  2. Разместить оба файла по URL, доступным для Rendi, либо сначала загрузить локальные файлы в Rendi.
  3. Отправить документированную FFmpeg-команду для субтитров.
  4. Опросить статус по идентификатору команды или принять итоговый результат через webhook.
  5. Проверить метаданные MP4 и полностью просмотреть результат, прежде чем отправлять следующие задачи.

Порядок важен. Кодировщик может успешно завершить работу, но результат всё равно окажется непригодным: субтитр появится раньше времени, имя будет написано неверно или текст перекроет интерфейс платформы.

Архитектурная схема: VIDEO и SRT поступают на этап POST, затем появляются SUCCESS и итоговый MP4
Rendi превращает два проверенных исходника в асинхронную FFmpeg-задачу и после статуса SUCCESS открывает доступ к готовому 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 для субтитров.

JavaScript
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.

Архитектурная формула расхода: вход 1 GB плюс выход 0.5 GB равны 1.5 GB, рядом показаны лимиты Free 50 GB и Pro 250 GB
Rendi учитывает байты, которые читает и записывает. Одной длительности видео недостаточно, чтобы определить стоимость.

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

Free стоит $0 в месяц, включает 50 GB обработки и ограничивает время выполнения одной команды 1 минутой. Начальный Pro стоит $25 в месяц, включает 250 GB и повышает лимит команды до 10 минут. Полный разбор тарифов Rendi охватывает конфигурации с более мощными CPU и без ограничения времени, поэтому повторять здесь всю матрицу нет смысла.

Главное различие — в организации работы. Kapwing Pro указан по цене $16 за участника в месяц при оплате за год или $24 при ежемесячной оплате. Визуальный редактор удобнее для редких разовых задач. Rendi лучше подходит, когда финализация субтитров — повторяемый этап системы: его запускают утверждённые материалы, а результат отслеживается без необходимости снова открывать редактор.

Семь сценариев, где такой процесс полезнее всего

Лучший пользователь — не любой, кто добавляет субтитры, а команда с уже утверждённым SRT, которая постоянно повторяет финальный рендер.

МестоКто получает выгодуКонкретный процессЗа счёт чего окупается
1Команда соцсетей, регулярно выпускающая клипыУтвердить расшифровку, применить сохранённый стиль субтитров, после каждого финального монтажа отрендерить MP4 и отправить результат на проверкуУбирает повторяющиеся загрузку, оформление, экспорт и скачивание, сохраняя единый визуальный вид копий для всех платформ
2Агентство локализации, которое отдаёт мастер-копии на согласованиеСопоставить каждый утверждённый языковой SRT с одним исходником, вшить субтитры в отдельные MP4 для проверки и сохранить оригинальные файлы субтитровКлиент видит тайминг и расположение текста именно такими, какими их увидит зритель, а у агентства остаются редактируемые языковые материалы
3Создатель курсов с растущей библиотекой уроковПосле утверждения мастер-файла урока и SRT автоматически создать версию с субтитрами, затем сопоставить длительность и размеры из ответаФинализация субтитров становится контролируемым этапом выпуска, а не ручной задачей редактора для каждого урока
4Подкаст-студия, выпускающая видеофрагментыПередавать утверждённые клипы и исправленные SRT из очереди переупаковки контента в один пресет субтитровРедакторы уделяют внимание заходам и монтажу, а не повторяют финальный экспорт субтитров
5Служба поддержки, обновляющая демонстрации продуктаПовторно рендерить деморолики при каждом изменении утверждённого сценария или записи интерфейсаКаждую правку можно проследить по исходнику, ревизии субтитров, идентификатору команды и проверенному результату
6Агентство автоматизации, работающее с n8n, Make или ZapierОтправить задачу Rendi из рабочего процесса, дождаться результата через опрос или webhook и передать сохранённый URL на следующий согласованный этапДобавляет обработку медиа без запуска FFmpeg внутри среды автоматизации с ограничениями
7Медиакоманда, которая поднимает архивные съёмкиНайти нужный исходный клип, приложить утверждённый SRT и создать копию с фиксированными субтитрами для согласования или соцсетейСвязывает поиск с выпуском, не смешивая извлечение и рендеринг; за поиск отвечает обзор Reelback

Три продукта, которые стоит построить

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

Сделать этот сайт предпочтительным в Google

Добавить omidsaffari.com как предпочтительный источник в Google Поиске

Отметьте omidsaffari.com как предпочтительный источник — и Google будет поднимать его для вас в Top Stories, AI Overviews и AI Mode.

Похожие статьи
Тестирование плагинов Claude Code: evals без самописного раннера

Тестирование плагинов Claude Code: evals без самописного раннера

Разбираем нативные eval-тесты Claude Code: как сравнить поведение с плагином и без него, оценить дельту, ограничить расходы и поставить проверку в CI.12 сент. 2026 г.Build
Голосовой ИИ-агент Cloudflare: как найти причину задержки

Голосовой ИИ-агент Cloudflare: как найти причину задержки

Разбираем turnmetrics в Cloudflare: по этапам и исходам находим причину задержки или молчания голосового ИИ-агента — от транскрибации до TTS.12 сент. 2026 г.Build
OpenAI Agents API или Agents SDK: что выбрать

OpenAI Agents API или Agents SDK: что выбрать

Сравниваем OpenAI Agents API и Agents SDK: управление состоянием, развертывание, стоимость, ограничения и сценарии, в которых стоит выбрать каждый вариант.11 сент. 2026 г.Build
Цена Rendi в 2026 году: считайте байты, а не минуты видео

Цена Rendi в 2026 году: считайте байты, а не минуты видео

Сколько стоит Rendi в 2026 году? Разбираем тарифы FFmpeg API, лимиты обработки и хранения, время команд и выбор плана под реальную нагрузку.11 сент. 2026 г.Build
Git worktree в Codex CLI: изолированные задачи без ручной рутины

Git worktree в Codex CLI: изолированные задачи без ручной рутины

Разбираем git worktree в Codex CLI 0.154.0: запуск изолированных сессий, проверка изменений, сохранение коммитов и безопасная очистка рабочих деревьев.10 сент. 2026 г.Build
Настройка Claude Code: как задать предел усилий

Настройка Claude Code: как задать предел усилий

Разбираем настройку Claude Code maxEffortLevel: как задать предел усилий, проверить итоговый уровень и сравнить качество задач с расходом токенов.10 сент. 2026 г.Build
Запись видео в agent-browser: как выбрать FPS

Запись видео в agent-browser: как выбрать FPS

Запись видео в agent-browser v0.37.0: как выбрать 30, 60 или 1–15 fps, читать счётчики кадров и сохранять понятные подтверждения для проверки в CI.8 сент. 2026 г.Build
Цена UltaHost VPS при продлении: реальная стоимость тарифов

Цена UltaHost VPS при продлении: реальная стоимость тарифов

Цена UltaHost VPS при продлении без рекламных иллюзий: тарифы от месяца до 3 лет, окупаемость предоплаты, платные панели и ограничения возврата.7 сент. 2026 г.Build
Рассылка

Одно письмо, каждое воскресенье.Работающие системы, а не горячие мнения.

Еженедельно. Без спама. Отписка в любой момент.