mimoLive® - Benutzerhandbuch

Allgemeine Selektoren
Nur exakte Treffer
Suche im Titel
Suche im Inhalt
Post Type Selectors

Handbuch - Inhaltsverzeichnis

Automatisierung

Inhaltsübersicht

Optimieren Sie Ihre Produktion mit der Automatisierungsschicht von mimoLive

Die Automatisierungsebene von mimoLive wurde ursprünglich als Proof of Concept entwickelt, hat sich aber inzwischen als unglaublich nützliches Werkzeug für die Benutzer erwiesen. Diese Ebene kann verwendet werden, um das Ein- und Ausschalten von Ebenen in einer bestimmten Reihenfolge oder zu festgelegten Zeiten zu automatisieren.

Dies kann besonders bei der Erstellung komplexer Produktionen mit mehreren Ebenen und Eingängen hilfreich sein, da manuelle Umschaltungen und Timings entfallen. Mit der Automatisierungsebene können sich die Benutzer auf die Erstellung ansprechender Inhalte konzentrieren und die Software mit dem Timing und der Sequenzierung ihrer Produktion beauftragen.

Beispiel: Automatisierungsschicht

Automatisierung

Warnung: Automatisierungsskripte in mimoLive laufen nicht in Echtzeit

Bitte beachten Sie, dass das Timing von Automatisierungsskripten in mimoLive aufgrund der asynchronen Natur von HTTP-Anfragen, die von der Video-Rendering-Engine aufgerufen werden, möglicherweise nicht genau ist. Diese Skripte basieren auf HTTP-Anfragen an die API und die Länge dieser Anfragen kann nicht genau bestimmt werden, was zu möglichen Zeitabweichungen führt. Bitte beachten Sie dies bei der Verwendung von Automatisierungsskripten in Ihrem Produktionsworkflow.

Voraussetzung

Damit diese Ebene funktioniert, müssen Sie die Option HTTP Server in mimoLive, um die Fernsteuerung zu aktivieren API. Gehe zu mimoLive -> Präferenzen -> Fernbedienungen: Aktivieren Sie die Option "Fernsteuerungszugriff zulassen". (Derzeit funktioniert es nur ohne Passwort)

6102d04e 4eb3 4600 b410 0d2b2aef0767

Einrichten der Automatisierungsebene

Es gibt zwei Möglichkeiten, wie sich die Ebene nach dem Einschalten verhalten soll:

OptionBenehmen
Schicht automatisch ausschaltenFür diese Option gibt es nur ein Skript. Sobald dieses Skript abgearbeitet ist, schaltet sich die Ebene ab. Diese Option kann verwendet werden, wenn eine Sequenz einmal ausgeführt werden soll.
Schicht manuell ausschalten (z. B. durch den Bediener)In diesem Fall sind drei Skripte verfügbar. Wenn die Ebene live geschaltet wird, wird das Skript "On Live" abgearbeitet. Sobald dies geschehen ist, wird das Skript "While Live" in einer Endlosschleife abgearbeitet. Sobald die Ebene ausgeschaltet wird, wird das Skript "Turned Off" abgearbeitet.
Wenn Sie für eine bestimmte Phase keinen Bedarf haben, können Sie das zugehörige Skript leer lassen.

Quellcode Kommentare

Damit Sie sich die Funktion Ihres Skripts besser merken können, empfehlen wir die Verwendung von Kommentaren in Ihrem Skript:

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

!Die Kommentare müssen in einer separaten Zeile stehen und das // muss am Anfang dieser Zeile stehen.

Skripting-Befehle

Die Skriptsprache ist proprietär und verfügt nur über eine Reihe von Befehlen.

layerOn(API Schicht-ID)

Mit diesem Befehl können Sie eine Ebene oder eine Ebenenvariante einschalten.

// 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 Schicht-ID)

Mit diesem Befehl können Sie eine Ebene oder eine Ebenenvariante ausschalten. Mit diesem Befehl können Sie eine Ebene oder eine Ebenenvariante ausschalten.

// 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 Ebenensatz-ID)

Dieser Befehl kann verwendet werden, um den Rückruf für eine bestimmte Ebenen-Sets.

// 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 Ausgabeziel-ID)

Verwenden Sie diesen Befehl, um ein Ausgabeziel einzuschalten.

outputOff(API Ausgabeziel-ID)

Verwenden Sie diesen Befehl, um ein Ausgabeziel zu deaktivieren.

schlafen(Sekunden)

Der Befehl sleep() hält die Berechnung des Skripts für die angegebenen Sekunden an.

// 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 (24h))

Der Befehl sleepUntil() lässt das Skript pausieren, bis die angegebene Zeit erreicht ist. Ist die Zeit bereits verstrichen, wartet das Skript bis zum nächsten Tag.

// 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 …)

Dieser Skriptbefehl pausiert das Skript, bis die nächste Reibung von einer Stunde "auf die Minute" erreicht ist.

// 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($variablenname, Wert)

Um eine lokale Variable zu definieren, verwenden Sie den Befehl setVariable. Sie müssen einen Variablennamen (mit einem $-Postfix) und den Wert angeben, den diese Variable haben soll. Der Wert kann eine Zahl, ein Text (in Anführungszeichen) oder die booleschen Werte "true" und "false" sein. Sie können die Variable in jedem Feld der anderen Befehle verwenden.

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

setGlobal($variablenname, Wert)

Eine globale Variable kann in der aktuellen Ebene oder in allen Automatisierungsebenen oberhalb dieser Ebene verwendet werden. Dies ist sehr nützlich, wenn Sie in allen Automatisierungsebenen die gleichen Informationen haben möchten (z. B. die API ID einer bestimmten Ebene). Für den Wert der Variable gilt dasselbe wie im Befehl setVariable beschrieben.

Bitte beachten Sie, dass die globalen Variablen für andere Automatisierungsebenen gültig sind, solange die Ebene selbst aktiv ist. Auf diese Weise können Sie die globalen Variablen wechseln, indem Sie zu einer anderen Ebene mit anderen globalen Variablendefinitionen wechseln.

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

ifLayerIsOn() - ifLayerIsOff() [else] endif

Diese if-Anweisungen testen, ob eine bestimmte Schicht gerade aktiv ist oder nicht. Wenn ja, werden die folgenden Befehle verarbeitet. Andernfalls werden die folgenden Befehle übersprungen, bis ein else oder endif gefunden wird.

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

Diese if-Anweisungen testen, ob eine bestimmte Ebenen-Set Wenn ja, werden die folgenden Befehle verarbeitet. Andernfalls werden die folgenden Befehle übersprungen, bis ein else oder endif gefunden wird.

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(, , , )

Mit diesem komplexen Befehl können Sie auf der Ebene jeden Parameter testen, den der HTTP API bietet. Sie müssen eine Ebene durch ihre API ID, den Schlüsselpfad innerhalb der JSON Daten die HTTP API gibt einen Komparator (in Anführungszeichen als String!) (z.B. "==") und einen Wert zurück.

Gültige Komparatorwerte sind:

"=="ist gleich
"!="nicht gleich
">"größer als
"<"weniger als
">="größer oder gleich als
"<="weniger oder weniger als
// 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

Mit dem Befehl loop können Sie einen bestimmten Code mehrfach ausführen. Wenn Sie die Iterationen nicht angeben, wird die Schleife endlos ausgeführt. Mit dem break-Befehl können Sie jederzeit aus der Schleife herausspringen. endloop wird am Ende des Befehlsblocks benötigt, der in einer Schleife ausgeführt werden soll.

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()

Die Funktion httpRequest() gibt Ihnen eine große Flexibilität, was Sie mit diesem Skript auslösen können. Auch in anderen Dokumenten oder entfernten Skripten. Bitte lesen Sie die HTTP API Dokumentation für alle API Anrufe möglich.

Datenarten

API Endpunkte

Der Parameter sollte ein API Endpunkt für eine Ebene, eine Ebenenvariante oder ein Ebenenset können Sie diese API Endpunkte, indem Sie mit der rechten Maustaste auf das Objekt im mimoLive-Dokument klicken. Es sollte ein Kontextmenü mit der Option "Kopieren" erscheinen. API Menüpunkt "Endpunkt".

Dies kopiert die API Endpunkt für dieses Objekt in der Vergangenheitstafel. Wenn Sie es irgendwo einfügen, wird es etwa so aussehen:

/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

Sie können die API Endpunkte nur für den letzten Teil. Dadurch wird Ihr Skript kürzer, wie hier gezeigt:

// 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)

 

Dieser Parameter stellt eine Zeit in 24-Stunden-Darstellung dar. Stunden, Minuten und Sekunden werden durch ":" getrennt.

Skripting-Ideen

Alle 10 Minuten eine Anzeige schalten

In Kombination mit einem "PIP Window"-Ebene und einer "Media Playlist"-Quelle, die mehrere kurze Werbefilmclips enthält, können Sie alle 10 Minuten eine Werbung abspielen. Stellen Sie sicher, dass Sie die Option "Non-Stop" in der Quelle "Media Playlist" deaktivieren. Auf diese Weise wird jedes Mal, wenn die PIP Fenster auf Live gestellt wird, wird eine Anzeige aus der Playlist-Quelle abgespielt und schaltet sich dann ab. Nach 10 Minuten wird die nächste Werbung abgespielt.

Führen Sie einen Stinger aus, bevor Sie zu einer bestimmten Ebene wechseln

Sie müssen ein kurzes Stinger-Video vorbereiten, das eine In-Transition hat, bis es den gesamten Bildschirm bedeckt (z. B. nach 1 Sekunde). Nach 1 Sekunde schalten Sie live zu der Ebene, die Sie enthüllen möchten. Legen Sie diese Ebene unter die Ebene, die das Stinger-Video wiedergibt. Jetzt, da das Stinger-Video den gesamten Bildschirm bedeckt, ist das Umschalten der darunter liegenden Ebene nicht mehr zu sehen. Das Stinger-Video sollte mit dem Aufdecken der darunter liegenden Ebene fortfahren. Achten Sie darauf, dass das Stinger-Video im Videocodec ProRes4444 gerendert ist, damit es die für den Übergang notwendige Transparenz mitbringt.

Erstellen Sie einen komplexen Show-Opener

Da Sie die Ebenen nacheinander über einen längeren Zeitraum ein- und ausschalten können, können Sie mehrere Text- oder Anmerkungsebenen, Platzierungsebenen mit Grafiken oder sogar untere Drittel haben, die den Bildschirm ausfüllen, um Ihren eigenen animierten Show-Opener zu erstellen. Werden Sie kreativ!

Auslösen einer Fernbedienung HTTP URL durch Antippen der Fernbedienungsoberfläche

Wenn Sie eine HTTP Anfrage über eine Schaltfläche auf Ihrem Oberfläche der Fernbedienung können Sie eine Automatisierungsebene zu Ihrem Ebenenstapel hinzufügen und die Option "Ebene ausschalten" für diese Ebene auf "Automatisch" setzen. Nun können Sie einen einzelnen httpRequest()-Befehl in das Skriptfeld "On Live" einfügen. Fügen Sie auf Ihrer Fernbedienungsoberfläche die Schaltfläche "Live" für diese Ebene zum Layout hinzu. Sobald Sie diese Schaltfläche auf Ihrer Fernsteuerungsoberfläche drücken, wird die HTTP Anfrage durchgeführt werden.

Ihr Feedback

Wie würden Sie Ihre Erfahrungen mit dieser Funktion von mimoLive bewerten?

E-Mail-Newsletter

Deutsch

Nehmen Sie an der 24/7 Live Zoom® Demo teil

*erforderlich