Медиа.маги Документация

Last updated

setvar

Узел setvar в центре холста, принимающий один вход Value и пишущий в переменную процесса NewFileName.

1. Сводка

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

2. Когда использовать

  • Хранение производного значения — eval вычисляет суффикс имени файла уровня или выбранный профиль кодера, setvar сохраняет его, чтобы поля Name / Output URL / Bitrate кодера могли прочитать его обратно как $VariableName.
  • Параметризация узлов ниже по потоку — заморозка решения маршрутизации в переменную, которую читают несколько узлов ниже по потоку, избегая повторного пересчёта того же выражения в каждом потребителе.
  • Именование выходных файлов переменными — управление параметром Name мультиплексора mp4 из $NewFileName, пока eval выше по потоку переписывает базовое имя источника в шаблон имени поставки.
  • Захват результатов инспекции для потребления ниже по потоку — хранение AudioCodec, VideoHeight или любого выхода analyze в переменной, чтобы её могли прочитать узлы, не принимающие подключение пина.

3. Входы

  • Value(динамический тип). Значение для сохранения. Обычно выход Value узла eval (строка) или любой выходной пин, чей тип совпадает с тем, что потребители ниже по потоку ожидают для именованной переменной.

    Совместимые узлы выше по потоку:

    • eval — самый частый узел выше по потоку; его вычисленное Value и есть значение для сохранения.
    • analyze — сохраняет инспектированное свойство (например, VideoHeight) без прохода через eval.
    • decide — сохраняет, какая ветвь сработала (через свой булев выход Eval).

4. Выходы

У этого узла нет выходных пинов. Он терминальный на стороне данных; его эффект — побочный эффект записи переменной, которую узлы ниже по потоку потребляют по имени через $VariableName в своих полях параметров.

5. Параметры

Форма «setvar Node Settings» с комбобоксом Name, выбирающим целевую переменную процесса.

Форма «Настройки» содержит подпись и один селектор переменной.

  • Node Label (string, по умолчанию пусто)

    Произвольное имя, отображаемое на плитке узла на холсте.

    • Что задаёт. Подпись на плитке.
    • Когда менять. Задавайте, когда несколько узлов setvar пишут разные переменные в одном графе; подпись позволяет читающему с одного взгляда видеть, для какой переменной каждый из них.
  • Name (string, по умолчанию пусто, обязательно)

    Целевая переменная процесса для записи. Управление — комбобокс, чей выпадающий список перечисляет каждую переменную, объявленную в ящике Variables процесса, каждую с префиксом $.

    • Что задаёт. В какую переменную процесса сохраняется значение выше по потоку. Узлы ниже по потоку читают её обратно как $<Name> в своих полях параметров.
    • Когда менять. Всегда задавайте — поле пусто по умолчанию. Выбирайте имя, описывающее роль значения (NewFileName, TargetHeight, Codec); избегайте обобщённых заглушек.
    • Обязательно. да.
    • Допустимые значения. Любая переменная, объявленная в ящике Variables процесса. Сначала объявите там переменную, если её ещё нет.

Соответствие JSON-ключей и названий полей

JSON-ключ Название поля
name Name

6. Пример

Процесс Three-tier MP4 ladder на холсте

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в 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.
Медиа.маги Документация