Перейти к содержимому
Content 365
Назад

Автоматизация создания видео в n8n Cloud: как собрать ролик с озвучкой и субтитрами без Execute Command

Обложка статьи «Автоматизация создания видео в n8n Cloud: как собрать ролик с озвучкой и субтитрами без Execute Command»

Автоматизация создания видео обычно буксует не на сценарии и не на озвучке. Текст пишет нейросеть, голос даёт синтез речи, клипы берутся из стока или генерируются. Застревает всё на последнем шаге: из кучи отдельных файлов нужно собрать один MP4, где картинка, звук и субтитры идут синхронно.

На своём сервере этот шаг решается одной командой FFmpeg. В облачной версии n8n такой возможности нет, и привычный ответ с форумов «просто вызовите FFmpeg» перестаёт работать. Ниже я разбираю паттерн, которым с этим справляется автор одного из конвейеров коротких видео. Он описал его в разделе Built with n8n на форуме сообщества n8n, в теме «Assembling clips + voiceover + SRT captions into one MP4 on n8n Cloud (no Execute Command node)».

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

В чём задача: последний метр видео-конвейера

Короткое вертикальное видео в автоматическом конвейере проходит четыре стадии. Автор материала описывает их так:

  1. Сценарий.
  2. Клипы: сток, видео от нейросети или собственная съёмка.
  3. Озвучка: синтез речи (TTS) или запись голоса.
  4. Субтитры в формате SRT с таймингами.

SRT — простой текстовый формат субтитров. Каждая строка текста привязана к отрезку времени «с такой-то секунды по такую-то». Плеер или программа монтажа по этим меткам понимает, когда показывать фразу.

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

Вшитые субтитры (по-английски burn in) становятся частью картинки. Отдельной дорожки, которую зритель может выключить, у них нет. Для соцсетей это обычный выбор: ролик выглядит одинаково везде, куда его загрузили.

Почему в n8n Cloud не работает FFmpeg

FFmpeg — консольная утилита, которая умеет почти всё с видео и звуком: резать, склеивать, менять размер, накладывать текст. В n8n её вызывают через ноду Execute Command. Эта нода выполняет команду операционной системы на той машине, где работает n8n.

Если n8n стоит на вашем сервере, вы ставите туда FFmpeg и вызываете его из воркфлоу. Как пишет автор материала, в n8n Cloud ноды Execute Command нет. Значит, нет и способа запустить на сервере произвольную программу. Видео придётся собирать где-то ещё.

Судя по соседним темам форума, вопрос всплывает регулярно. Рядом с разобранной публикацией лежат обсуждения про вшивание субтитров из облачной версии, про нарезку длинных роликов на вертикальные клипы с подписями и вопрос, есть ли у fal эндпоинт для склейки аудио, видео и субтитров. Задача массовая, а готового ответа внутри самой платформы нет.

Как работает автоматизация создания видео без Execute Command

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

Шаг сборки выглядит так:

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

Для того, кто делает контент, у такого подхода два следствия. Хорошее: n8n Cloud остаётся облачным, сервер админить не нужно, а сборка ролика — это один HTTP-запрос в воркфлоу. Плохое: самая дорогая и капризная часть конвейера переезжает к стороннему сервису, и его ограничения становятся вашими.

Что подготовить до сборки: три ловушки из материала

Автор перечисляет, на чём споткнулся, пока собирал пример. Все три пункта относятся не к конкретному сервису, а к любой автоматической склейке.

Клипы со «служебным» мусором

Стоковые и агентские видео часто начинаются с титульной заставки или содержат вшитые чёрные полосы сверху и снизу (letterbox). Автоматический сборщик не отличит заставку от содержания. Он честно вставит её в середину ролика, а полосы растянет вместе с кадром.

Совет автора — брать чистые клипы или обрезать их заранее. Для конвейера это означает отдельный шаг отбора или проверки исходников. Пропустить его можно только тогда, когда источник клипов заведомо чистый, например собственная генерация.

Хостинги, которые не отдают файлы роботам

Некоторые площадки блокируют запросы без нормального заголовка User-Agent. Это строка, которой программа представляется серверу. В материале в пример приведена Wikimedia. Конвейер падает на скачивании, и снаружи это выглядит как «сервис сборки не работает».

Проверять стоит то звено, которое реально скачивает медиа. Если это внешний сборщик, нужно убедиться, что он отправляет User-Agent. Если файл предварительно перекладывает сам n8n, заголовок задаётся в HTTP-запросе.

Субтитры по сценарию вместо субтитров по голосу

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

На практике это, скорее всего, значит, что тайминги нельзя посчитать «по количеству слов» заранее. Их нужно снимать с готового аудио, вручную или отдельным инструментом распознавания речи. В примере автора 15 строк субтитров к 48-секундному ролику расставлены руками.

Варианты сборки: свой FFmpeg, видео-API, Apify Actor

Автор выделяет три пути для шага сборки. Свёл их в таблицу. Всё, что про цены и лимиты конкретных сервисов не сказано в материале, я не заполняю: условия нужно смотреть в документации каждого.

ВариантГде работаетЧто даётЧто учесть
FFmpeg через Execute Commandтолько n8n на своём сервереполный контроль над обработкойнужен сервер, установка FFmpeg и умение писать команды
Готовые видео-API: Creatomate, RenderIO, Shotstack и подобныелюбая версия n8n, через HTTP-запроссборка без своего сервераусловия, форматы входа и цены — по документации каждого сервиса
Apify Actor автора материала с бесплатным шаблоном для n8nлюбая версия n8nсклейка клипов, озвучки и субтитров в MP4 по описанному паттернуплатный, жёсткие лимиты по числу клипов и длине, см. следующий раздел

Шаблон автора опубликован в библиотеке воркфлоу n8n под названием «Merge video clips, voiceover, and captions into an MP4 with Apify». Автор предлагает сначала запустить его без клипов: в таком режиме получается бесплатный демо-ролик.

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

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

Границы и цена

Ограничения Apify Actor автор перечисляет сам. Я привожу их как есть, это условия на момент публикации в сообществе:

Цена, по словам автора, — $0.20 за готовое видео. Если рендер падает, плата за сборку не списывается. Демо бесплатное.

Что из этого следует для реального конвейера. Лимит в 60 секунд закрывает короткие вертикальные форматы и не подходит для роликов длиннее минуты. Отсутствие обрезки клипов возвращает нас к ловушке с заставками: чистить исходники придётся до сборки, другим инструментом. Отсутствие расшифровки означает, что тайминги субтитров — отдельная задача, и её тоже надо где-то решить.

Есть границы и у самого паттерна, независимо от сервиса:

Где этот шаг в автоматизации производства видео

Мне в этом материале ценен не конкретный сервис, а то, как разложен конвейер. Автоматизация видео часто воспринимается как одна кнопка «сделать ролик». На деле это цепочка: сценарий, клипы, голос, тайминги, сборка, публикация. И у каждого звена свой характер сбоев.

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

Если смотреть так, выбор инструмента для сборки становится вопросом инфраструктуры, а не творчества. Свой сервер с FFmpeg, видео-API или готовый актор на Apify — это разные способы выполнить одну и ту же операцию: склеить, наложить звук, вшить текст.

Что с этим делать


Источник: Assembling clips + voiceover + SRT captions into one MP4 on n8n Cloud (no Execute Command node) - Built with n8n - n8n Community


Поделиться статьёй:

Предыдущая статья
Claude Code агенты для сбора цитат аудитории: как устроена команда, которая сама проверяет каждую ссылку
Следующая статья
Как убрать маркеры ИИ из текстов: промпт, второй проход и регулярка на примере бота