← Энциклопедия Fusion
УтилитыПродвинутый

RunCommand

RunCommand / Запуск внешней команды

RunCommand запускает внешние команды или скрипты на выбранных этапах обработки кадра: в начале, в конце и/или на каждом кадре, передавая в команду числовые и строковые параметры.

RunCommand1Image InputEffect MaskImage OutputMaskForegroundBackgroundOutput

RunCommand

Обзор

Что делает RunCommand

RunCommand нужна не для художественной обработки изображения, а для автоматизации. Она позволяет вызвать внешний исполняемый файл, скрипт, Python/PowerShell/Bash-команду, утилиту пайплайна, обработчик ассетов, логгер, генератор промежуточных файлов или любую другую команду, доступную системе, где работает Fusion/DaVinci Resolve.

Нода разделена на три рабочие вкладки. Frame Command выполняется во время обработки кадра и может использоваться для команд, завязанных на текущий фрейм. Start Command запускается при старте обработки/рендера, а End Command — после завершения. Такой принцип удобен для подготовки окружения, очистки временных файлов, запуска внешних проверок, отправки уведомлений или синхронизации с другим инструментом.

Самая опасная часть RunCommand — частота запуска. Команда на вкладке Frame потенциально может выполняться много раз, по одному или несколько раз на кадр. Поэтому тяжёлые операции, запись больших файлов, сетевые запросы и запуск приложений через Frame Command нужно использовать крайне осторожно. Для одноразовых действий чаще безопаснее Start или End.

Hide скрывает окно запускаемой команды, Wait заставляет Fusion ждать завершения процесса, а Interactive разрешает интерактивный режим. Эти параметры сильно влияют на стабильность: если включить Wait для долгой или зависшей команды, рендер может встать; если оставить Interactive там, где команда требует ввода, процесс может зависнуть без очевидной причины.

Number A (%a), Number B (%b), Number C (%c), Number D (%d) и String (%s) — пользовательские аргументы. Их можно подставлять в команду как переменные, чтобы один и тот же скрипт получал разные значения: номер версии, силу обработки, путь, имя шота, режим экспорта, id задачи или любой другой параметр пайплайна.

RunCommand особенно полезна в технических пайплайнах: автоматический рендер, подготовка файлов для нейросетевых инструментов, вызов ffmpeg, запуск Python-скрипта, обновление manifest-файла, создание логов, отправка статуса в локальный сервис или запуск пост-обработки после рендера.

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

Как это понимать

Представляй RunCommand как триггер внешнего скрипта внутри Fusion: Start срабатывает в начале, Frame — при обработке кадров, End — в конце. Command — что запускать, Hide/Wait/Interactive — как вести процесс, Number A–D и String — какие значения передать наружу.

Где используется

Запустить внешний Python, Bash, PowerShell или batch-скрипт из Fusion.
Выполнить подготовительную команду перед рендером через Start Command.
Запустить пост-обработку, уведомление или очистку временных файлов через End Command.
Передать в скрипт числовые параметры через %a, %b, %c и %d.
Передать строковый аргумент, путь или режим работы через %s.
Вызвать ffmpeg, локальный сервис, пайплайн-утилиту или генератор вспомогательных данных.
Автоматизировать технические операции в больших Fusion-композициях и шаблонах.