mimoLive® - Руководство пользователя

Общие селекторы
Только точные совпадения
Поиск по названию
Поиск в содержании
Селекторы типов сообщений

Руководство - оглавление

Автоматизация

Оглавление

Оптимизация производства с помощью уровня автоматизации mimoLive

Слой Automation в mimoLive изначально разрабатывался как пробный вариант, но с тех пор оказался невероятно полезным инструментом для пользователей. Этот слой можно использовать для автоматизации включения и выключения слоев в определенной последовательности или в заранее установленное время.

Это может быть особенно полезно при создании сложных постановок с несколькими слоями и входами, поскольку устраняет необходимость в ручном переключении и синхронизации. Благодаря слою автоматизации пользователи могут сосредоточиться на создании интересного контента и позволить программному обеспечению управлять синхронизацией и последовательностью производства.

Пример: Уровень автоматизации

Автоматизация

Предупреждение: Сценарии автоматизации в mimoLive не выполняются в реальном времени

Обратите внимание, что время выполнения сценариев автоматизации в mimoLive может быть неточным из-за асинхронной природы HTTP-запросов, вызываемых движком рендеринга видео. Эти скрипты полагаются на HTTP-запросы к API, и длительность этих запросов не может быть точно определена, что приводит к потенциальным расхождениям во времени. Пожалуйста, имейте это в виду при использовании сценариев автоматизации в рабочем процессе.

Пререквизит

Для того чтобы этот слой работал, необходимо включить HTTP Сервер в mimoLive для включения удаленного управления API. Перейти к mimoLive -> Предпочтения -> Пульты дистанционного управления: Отметьте опцию "Разрешить доступ к удаленному управлению". (В настоящее время он работает только без пароля)

6102d04e 4eb3 4600 b410 0d2b2aef0767

Настройка слоя автоматизации

Есть два варианта того, как должен вести себя слой после включения:

ВариантПоведение
Автоматическое отключение слояДля этой опции доступен только один сценарий. Как только этот сценарий будет обработан, слой выключится. Эту опцию можно использовать, если последовательность должна быть выполнена один раз.
Выключение слоя вручную (например, оператором)В этом случае доступны три сценария. Когда слой переключается в режим реального времени, обрабатывается сценарий "On Live". После этого в бесконечном цикле обрабатывается сценарий "While Live". Когда слой будет выключен, будет обработан сценарий "Turned Off".
Если у вас нет необходимости в определенной фазе, вы можете оставить связанный с ней скрипт пустым.

Комментарии к исходному коду

Чтобы помочь вам запомнить функции вашего скрипта, мы рекомендуем использовать комментарии в вашем скрипте:

// Now sleep for 5 seconds
sleep(5)
// Start the stopwatch layer:
layerOn(7C4665C4-0E17-4F63-BCFF-B59D68D75956)

!Комментарии должны быть в отдельной строке, а // - в начале этой строки.

Команды сценариев

Язык сценариев является собственным и содержит только несколько команд.

layerOn(API Идентификатор слоя)

Эта команда позволяет включить слой или его вариант.

// switching on a layer by its id
layerOn(234674-se5634-2w435456)
// switching on a layer variant by its id
layerOn(4E38A868-DCB5-4E9C-AC75-231764229BFA/variants/5F18C566-F59F-45B4-8D40-27EF289D47B1)
// switching on a layer by its long API Endpoint URL
layerOn(/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D)
// switching on a layer with a defined variable
setVariable($myLayerID, "234674-se5634-2w435456")
layerOn($myLayerID)

layerOff(API Идентификатор слоя)

Эта команда позволяет отключить слой или вариант слоя. Эта команда позволяет отключить слой или вариант слоя.

// switching off a layer by its id
layerOff(234674-se5634-2w435456)
// switching off a layer variant by its id
layerOff(4E38A868-DCB5-4E9C-AC75-231764229BFA/variants/5F18C566-F59F-45B4-8D40-27EF289D47B1)
// switching off a layer by its long API Endpoint URL
layerOff(/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D)
// switching off a layer with a defined variable
setVariable($myLayerID, "234674-se5634-2w435456")
layerOff($myLayerID)

layerSetRecall(API Идентификатор набора слоев)

Эта команда может использоваться для запуска отзыва для определенного Наборы слоев.

// recall a Layer Set by its id
layerSetRecall(E6950B7A-7457-44C5-81F7-972D9B04DBC3)
// recall a Layer Set by its long API Endpoint URL
layerSetRecall(/api/v1/documents/863743527/layer-sets/E6950B7A-7457-44C5-81F7-972D9B04DBC3)
// recall a Layer Set with a defined variable
setVariable($myLayerSetID, "E6950B7A-7457-44C5-81F7-972D9B04DBC3")
layerSetRecall($myLayerSetID)

outputOn(API Идентификатор места назначения вывода)

Используйте эту команду для включения пункта назначения вывода.

outputOff(API Идентификатор места назначения вывода)

Используйте эту команду для отключения пункта назначения вывода.

спать(Секунды)

Команда sleep() приостановит вычисления скрипта на заданное количество секунд.

// pause the script computation for 12 seconds
sleep(12)
// pause the script computation for 35.6 seconds
sleep(35.6)
// pause the script computation for a time interval specified by a variable
setVariable($mySleepInterval, 17)
sleep($mySleepInterval)

sleepUntil(HH:MM:SS (24 часа))

Команда sleepUntil() позволит скрипту приостановиться до достижения указанного времени. Если время уже прошло, скрипт будет ждать до следующего дня.

// sleep until 5:15pm
sleepUntil(17:15:00)
// sleep until 9:12am
sleepUntil(9:12)
// sleep until a time specified by a variable
setVariable($myWakeUpTime, "9:41")
sleepUntil($myWakeUpTime)

sleepOnTheMinute(1|2|3|4|5|6|10|12|15|20|30|60|90|120 …)

Эта команда скрипта приостановит выполнение скрипта, пока не будет достигнуто следующее часовое трение "на минуту".

// go on every 20 minutes: on the hour, 20 and 40 minutes past the hour:
sleepOnTheMinute(20)
// go on "on the hour"
sleepOnTheMinute(60)
// go on every 10 minutes past the hour (specified by a variable)
setVariable($myWakeUpMinute, "10")
sleepOnTheMinute($myWakeUpMinute)

setVariable($variableName, значение)

Чтобы определить локальную переменную, используйте команду setVariable. Вам необходимо указать имя переменной (с постфиксом $) и значение, которое эта переменная должна иметь. В качестве значения может выступать число, текст (в кавычках) или булевы значения "true" и "false". Вы можете использовать переменную в любом поле других команд.

setVariable($myText, "This is a text")
setVariable($myNumber, 15.73)
setVariable($myBoolValue, false)

setGlobal($variableName, значение)

Глобальная переменная может использоваться как в текущем слое, так и во всех слоях автоматизации над этим слоем. Это очень удобно, если вы хотите иметь одну и ту же информацию во всех слоях автоматизации (например, в слое API ID определенного слоя). Для значения переменной применяется то же самое, что и в описанной команде setVariable.

Обратите внимание, что глобальные переменные действительны для других слоев Automation до тех пор, пока сам слой находится в режиме реального времени. Таким образом, вы можете переключать глобальные переменные, переходя на другой слой с другими определениями глобальных переменных.

setGlobal($myGlobalText, "This is a text")
setGlobal($myGlobalNumber, 15.73)
setGlobal($myGlobalBoolValue, false)

ifLayerIsOn() - ifLayerIsOff() [else] endif

Эти операторы if проверяют, жив ли в данный момент определенный слой или нет. Если да, то обрабатываются следующие команды. В противном случае следующие команды пропускаются до тех пор, пока не будет найдена команда else или endif.

setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")
setVariable($myLayerB, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")


ifLayerIsOn($myLayerA)
	// the layer is live, switch it off
  layerOff($myLayerA)

else
	// the layer is currently off, switch it on
  layerOn($myLayerA)

endif

ifLayerIsOff($myLayerB)

	// the layer is currently off, switch it on
  layerOn($myLayerB)

endif

ifLayerSetIsActive() - ifLayerSetIsInactive() [else] endif

Эти операторы if проверяют, есть ли определенный Набор слоев если да, то выполняются следующие команды. В противном случае следующие команды пропускаются до тех пор, пока не будет найдена команда else или endif.

setVariable($myLayerSetA, "CEF07AFA-B552-40F8-821C-CF424EB93500")
setVariable($myLayerSetB, "E4B15B8B-EE34-4CCE-BDE7-58120A65E83A")
setVariable($myLayer, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")


ifLayerSetIsActive($myLayerSetA)
	// the layer set A is active, switch layer on
  layerOn($myLayer)

else
	// the layer set A is currently inactive, switch the layer off
  layerOff($myLayer)

endif

ifLayerSetIsInactive($myLayerSetB)

	// the layer set B is currently inactive, switch the layer off
  layerOn($myLayer)

endif

ifLayerData(, , , )

Эта сложная команда позволяет проверить на слое любой параметр, который HTTP API обеспечивает. Вы должны указать слой по его API ID, путь к ключу внутри JSON данные HTTP API возвращает компаратор (в кавычках, как строка!) (например, "==") и значение.

Допустимыми значениями компаратора являются:

"=="равно
"!="не равно
">"больше, чем
"<"менее
">="больше или равно
"<="меньше или больше, чем
// Example: Testing if the audio volume is turned up on a layer

setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")
setVariable($myLayerB, "8C58DEA7-CCBE-44CB-A60F-97C5BD456C68")

ifLayerData($myLayerA,"data.attributes.volume",">",0.5)
	// The audio volume is bigger than 0.5 so turn layer B on
	layerOn($myLayerB)

else
	// The volume is lower than 0.5, lets turn layer B off
	layerOff($myLayerB)

endif

loop() [break] endloop

Команда loop позволяет выполнить определенный код несколько раз. Если не указать количество итераций, то цикл будет выполняться бесконечно. Команда break позволяет выйти из цикла в любой момент. endloop необходима в конце командного блока, который должен быть зациклен.

setVariable($myLayerA, "D6A326CA-72E6-45E5-836D-9795F8F534F4")

// blink layer A 4 times
loop(4)
	layerOn(setVariable(myLayerA)
  sleep(1)
	layerOff(setVariable(myLayerA)
  sleep(1)
endloop

// wait for volume of layer A will be bigger than 0.5
loop

	ifLayerData($myLayerA,"data.attributes.volume",">",0.5)
		// The audio volume is bigger than 0.5 exit the loop now
		break
	endif

	sleep(1)
endloop

httpRequest()

httpRequest() дает вам большую свободу действий в отношении того, что запускать с помощью этого скрипта. Даже в других документах или удаленных скриптах. Пожалуйста, прочитайте HTTP API документация для всех API звонки возможны.

Типы данных

API Конечные точки

Параметр должен представлять собой API Конечная точка для слоя, варианта слоя или набора слоев, вы можете получить их API Endpoints, щелкнув правой кнопкой мыши на объекте в документе mimoLive. Должно появиться контекстное меню с пунктом "Копировать API Пункт меню "Конечная точка".

Это скопирует API Конечная точка для этого объекта на прошлой доске. Если вы вставите его куда-нибудь, это будет выглядеть примерно так:

/api/v1/documents/863743527/layers/D6A326CA-72E6-45E5-836D-9795F8F534F4

/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922

/api/v1/documents/863743527/layer-sets/E6950B7A-7457-44C5-81F7-972D9B04DBC3

Вы можете уменьшить API Конечные точки только для последней части. Это сделает ваш скрипт короче, как показано здесь:

// switching on a layer:
layerOn(/api/v1/documents/863743527/layers/D6A326CA-72E6-45E5-836D-9795F8F534F4)
// OR
layerOn(D6A326CA-72E6-45E5-836D-9795F8F534F4)

// switching on a variant:
layerOn(/api/v1/documents/863743527/layers/68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922)
// OR
layerOn(68F63C8F-2376-4CA3-9764-CC17CBFC5F8D/variants/3FF72CC3-AF80-4252-A879-F8AFD68DB922)

 

Этот параметр представляет время в 24-часовом представлении. Часы, минуты и секунды разделены символом ":".

Идеи сценариев

Запускайте рекламу каждые 10 минут

В сочетании с "PIP Слой "Окно" и источник "Медиаплейлист", содержащий несколько коротких рекламных роликов, позволяют воспроизводить одну рекламу каждые 10 минут. Убедитесь, что снят флажок "Non-Stop" в источнике "Media Playlist". Таким образом, каждый раз, когда PIP При установке окна в режим реального времени оно воспроизведет одно объявление из источника Playlist и выключится. Через 10 минут будет воспроизведена следующая реклама.

Запускайте стингер перед переходом на определенный слой

Вам нужно подготовить короткий стингер-ролик, в котором будет происходить переход до тех пор, пока он не займет весь экран (например, через 1 секунду). Через 1 секунду вы переключитесь на слой, который хотите раскрыть. Расположите этот слой под слоем, воспроизводящим видеоролик. Теперь, когда видеоролик закрывает экран, переключение слоя ниже не будет видно. Видеоролик должен продолжаться, раскрывая слой ниже. Убедитесь в том, что видеоролик "стингер" рендерится в видеокодеке ProRes4444, чтобы он передавал прозрачность, необходимую для перехода.

Создайте сложную открывалку для шоу

Поскольку вы можете включать и выключать слои один за другим в течение длительного времени, у вас может быть несколько слоев с текстом или аннотациями, слой с графикой или даже нижние трети, заполняющие экран, чтобы сделать собственную анимированную открывалку. Будьте изобретательны!

Запуск пульта дистанционного управления HTTP URL нажатием на поверхность пульта дистанционного управления

Если вам нужно вызвать HTTP Запрос с помощью кнопки на вашем Поверхность для дистанционного управления вы можете добавить слой Automation в стек слоев и установить параметр "Switch Layer Off" для этого слоя в значение "Automatically". Теперь вы можете поместить одну команду httpRequest() в поле сценария "On Live". На поверхности пульта дистанционного управления добавьте кнопку Live этого слоя на макет. После нажатия этой кнопки на поверхности пульта дистанционного управления на экране появится HTTP запрос будет выполнен.

Ваши отзывы

Как бы вы оценили свой опыт использования этой функции mimoLive®?

Рассылка по электронной почте

Русский

Присоединяйтесь к круглосуточной демонстрации Zoom® в режиме реального времени

*необходимо

Вам нужно загрузить содержимое из reCAPTCHA чтобы отправить форму. Пожалуйста, обратите внимание, что при этом данные будут переданы сторонним поставщикам.

Дополнительная информация