setvar

1. Сводка
Пишет значение выше по потоку в именованную переменную процесса, которую другие
узлы могут разыменовать через $VariableName в своих полях параметров.
Сочетайте его с eval, чтобы сохранить
вычисленное значение, с выходными пинами analyze,
чтобы сохранить инспектированное свойство, или с литералом выше по потоку, чтобы
засеять переменную для потребления ниже по потоку.
2. Когда использовать
- Хранение производного значения — eval вычисляет суффикс имени файла уровня
или выбранный профиль кодера, setvar сохраняет его, чтобы поля Name /
Output URL / Bitrate кодера могли прочитать его обратно как
$VariableName. - Параметризация узлов ниже по потоку — заморозка решения маршрутизации в переменную, которую читают несколько узлов ниже по потоку, избегая повторного пересчёта того же выражения в каждом потребителе.
- Именование выходных файлов переменными — управление параметром Name
мультиплексора mp4 из
$NewFileName, пока eval выше по потоку переписывает базовое имя источника в шаблон имени поставки. - Захват результатов инспекции для потребления ниже по потоку — хранение AudioCodec, VideoHeight или любого выхода analyze в переменной, чтобы её могли прочитать узлы, не принимающие подключение пина.
3. Входы
Value— (динамический тип). Значение для сохранения. Обычно выходValueузла eval (строка) или любой выходной пин, чей тип совпадает с тем, что потребители ниже по потоку ожидают для именованной переменной.Совместимые узлы выше по потоку:
4. Выходы
У этого узла нет выходных пинов. Он терминальный на стороне данных; его эффект —
побочный эффект записи переменной, которую узлы ниже по потоку потребляют по
имени через $VariableName в своих полях параметров.
5. Параметры

Форма «Настройки» содержит подпись и один селектор переменной.
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись на плитке.
- Когда менять. Задавайте, когда несколько узлов setvar пишут разные переменные в одном графе; подпись позволяет читающему с одного взгляда видеть, для какой переменной каждый из них.
Name (
string, по умолчанию пусто, обязательно)Целевая переменная процесса для записи. Управление — комбобокс, чей выпадающий список перечисляет каждую переменную, объявленную в ящике Variables процесса, каждую с префиксом
$.- Что задаёт. В какую переменную процесса сохраняется значение выше по
потоку. Узлы ниже по потоку читают её обратно как
$<Name>в своих полях параметров. - Когда менять. Всегда задавайте — поле пусто по умолчанию. Выбирайте имя,
описывающее роль значения (
NewFileName,TargetHeight,Codec); избегайте обобщённых заглушек. - Обязательно. да.
- Допустимые значения. Любая переменная, объявленная в ящике Variables процесса. Сначала объявите там переменную, если её ещё нет.
- Что задаёт. В какую переменную процесса сохраняется значение выше по
потоку. Узлы ниже по потоку читают её обратно как
Соответствие JSON-ключей и названий полей
| JSON-ключ | Название поля |
|---|---|
name |
Name |
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Three-tier MP4 ladder (LQ / MQ / HQ).
7. Где используется
- Three-tier MP4 ladder (LQ / MQ / HQ) — сохраняет выведенный eval суффикс имени файла каждого уровня в переменную процесса
NewFileName, которую каждый мультиплексор MP4 читает обратно через своё поле Name.
8. Антипаттерны
- Перезапись переменной, ещё используемой выше по потоку от чтения.
Поскольку setvar срабатывает, когда его входное значение разрешается, запись
$Codecс позднего этапа одной ветви, пока ранний этап другой ветви ещё читает$Codec, порождает гонку, которую читающий увидит как нестабильный выход. Держите писателей каждой переменной упорядоченными перед всеми её читателями. - Хранение значения, чей тип не совпадает с ожиданиями потребителя. setvar сохраняет тот тип, что отдаёт пин выше по потоку; если поле потребителя ждёт число, а вы храните строку из eval, валидация ниже по потоку падает. Преобразуйте фильтром Jinja в eval перед setvar или подайте типизированный инспекционный пин напрямую.
- Включение setvar в нетерминальную позицию с ожиданием передачи. У setvar нет выходного пина; ничто ниже по потоку на стороне данных не сработает от этого узла. Подключайте потребителей ниже по потоку от того же значения выше по потоку (или соседнего узла), а не от setvar.
- Запись в переменную, которая никогда не была объявлена. Комбобокс Name перечисляет только объявленные переменные; ввод свободного имени даёт процесс, не проходящий валидацию. Сначала объявите переменную в ящике Variables.