Optimieren Sie Ihre Produktion mit der Automatisierungsschicht von mimoLive
Der mimoLive Automation Layer wurde ursprünglich als Proof of Concept entwickelt, hat sich aber inzwischen als unglaublich nützliches Werkzeug für die Benutzer erwiesen. Diese Schicht kann verwendet werden, um das Ein- und Ausschalten von Schichten in einer bestimmten Reihenfolge oder zu bestimmten Zeiten zu automatisieren, Informationen von einer Schicht zur anderen zu transportieren, zu starten und zu stoppen Ausgabezieleund so viel mehr!
Dies kann besonders bei der Erstellung komplexer Produktionen mit mehreren Ebenen und Eingängen hilfreich sein, da das manuelle Umschalten und Timing entfällt. Mit dieser Ebene können sich die Benutzer auf die Erstellung ansprechender Inhalte konzentrieren, während die Software das Timing und die Abfolge ihrer Produktion übernimmt. Jetzt, in Version 2 dieser Ebene, haben wir die Befehle erweitert, um die Automatisierung in mimoLive auf eine ganz neue Ebene zu bringen.
Beispiel: Automatisierungsschicht
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 die Automatisierungsebene in mimoLive nur ohne Passwort)
Einrichten der Automatisierungsebene
Es gibt zwei Möglichkeiten, wie sich die Ebene nach dem Einschalten verhalten soll:
Option | Benehmen |
---|---|
Schicht automatisch ausschalten | Fü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:
// First sleep for 5 seconds...
sleep(5)
// ...then start the stopwatch layer:
layerOn("7C4665C4-0E17-4F63-BCFF-B59D68D75956")
Die Kommentare müssen in einer separaten Zeile stehen.
Skripting-Befehle
Die Skriptsprache ist proprietär und umfasst mehrere Befehle. Diese Befehle sind in einem Spickzettel in der Ebenenvorschau auf der rechten Seite aufgeführt. Da die Liste möglicherweise etwas klein ist, können Sie die Vorschau mit der Schaltfläche über und rechts neben dem Vorschaubereich erweitern.
layerOn()
Mit diesem Befehl können Sie eine Ebene oder eine Ebenenvariante einschalten.
// switching on a layer by its id
layerOn("4E38A868-DCB5-4E9C-AC75-231764229BFA")
// 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/4E38A868-DCB5-4E9C-AC75-231764229BFA")
// switching on a layer with a defined variable
setVariable($myLayerID, "4E38A868-DCB5-4E9C-AC75-231764229BFA")
layerOn($myLayerID)
layerOff(<API Ebenen-ID als String Ausdruck>)
Mit diesem Befehl können Sie eine Ebene oder eine Ebenenvariante ausschalten.
// switching off a layer by its id
layerOff("4E38A868-DCB5-4E9C-AC75-231764229BFA")
// 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/4E38A868-DCB5-4E9C-AC75-231764229BFA")
// switching off a layer with a defined variable
setVariable($myLayerID, "4E38A868-DCB5-4E9C-AC75-231764229BFA")
layerOff($myLayerID)
layerSetRecall(<API-Ebene ID als String-Ausdruck festlegen>)
Dieser Befehl kann verwendet werden, um den Rückruf für eine bestimmte Ebenen-Set.
// 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-Ausgabe Ziel-ID als String-Ausdruck>)
Verwenden Sie diesen Befehl, um ein Ausgabeziel einzuschalten.
// Starten Sie ein Ausgabeziel über seine ID
outputOn("1953186E-4176-4849-A8ED-5B47EE1627BD")
// Starten Sie ein Ausgabeziel über seine lange API-Endpunkt-URL
outputOn("/api/v1/documents/1677022440/output-destinations/1953186E-4176-4849-A8ED-5B47EE1627BD")
// Starten Sie ein Ausgabeziel mit einer definierten Variablen
setVariable($myOutputDestinationtID, "1953186E-4176-4849-A8ED-5B47EE1627BD")
outputOn($myOutputDestinationtID)
outputOff(<API-Ausgabe Ziel-ID als String-Ausdruck>)
Verwenden Sie diesen Befehl, um ein Ausgabeziel zu deaktivieren.
// ein Ausgabeziel anhand seiner ID anhalten
outputOff("1953186E-4176-4849-A8ED-5B47EE1627BD")
// ein Ausgabeziel anhand seiner langen API-Endpunkt-URL anhalten
outputOn("/api/v1/documents/1677022440/output-destinations/1953186E-4176-4849-A8ED-5B47EE1627BD")
// ein Ausgabeziel mit einer definierten Variablen anhalten
setVariable($myOutputDestinationtID, "1953186E-4176-4849-A8ED-5B47EE1627BD")
outputOff($myOutputDestinationtID)
getLayerData(1TP11ErgebnisVariablenname, , )
Dieser Befehl kombiniert mehrere Befehle in einem Skriptschritt: Er liest die Layer-Informationen vom HTTP-Server und speichert ein bestimmtes Datenfeld aus der JSON-Antwort in einer Variablen. Sie benötigen den genauen Pfad zu dem Wert, den Sie lesen möchten. Für Eingabeparameter von Ebenen beginnt dieser Pfad normalerweise mit "data.attributes.input-values".
// set up useful variables
setVariable($myScoreboardLayerID, "36FA76B4-11FE-4879-8DE1-307222512712")
setVariable($pathToHomeScore, "data.attributes.input-values.tvGroup_Control__Score_Home")
// read the score for the home team from the Basketball layer
getLayerData($currentHomeScore, $myScoreboardLayerID, $pathToHomeScore)
// The variable $currentHomeScore now contains the Home Score input value of the Basketball Score layer
getObjectIDByName(1TP11ErgebnisVariablenname, , )
Dieser Befehl ruft den API-Endpunkt für ein bestimmtes mimoLive-Objekt anhand seines Anzeigenamens ab. Bitte beachten Sie, dass der Anzeigename vom mimoLive-Operator in der mimoLive-Benutzeroberfläche leicht geändert werden kann, was wiederum zu einem Abbruch des Automatisierungsskripts führt, wenn es das spezifische Objekt nicht mehr finden kann. Andererseits kann dieser Befehl verwendet werden, um API-Endpunkte programmatisch zu finden, ohne dass Sie die API-Endpunkte im Skript hart codieren müssen.
Gültige Optionen für sind: "Quelle", "Ebene", "Ebenen-Set", "Ausgabe-Ziel"
// Get the API Endpoint for the Basketball Score layer
getObjectIDByName($myBasketballScoreLayerID, "layer", "My Basketball Score Keeper")
// switch this layer on
layerOn($myBasketballScoreLayerID)
schlafen(<Sekunden> als Zahl)
Der Befehl sleep() hält die Ausführung des Skripts für die angegebene Zeitspanne in Sekunden an.
// pause the script execution for 12 seconds
sleep(12)
// pause the script execution for 35.6 seconds
sleep(35.6)
// pause the script execution for a time interval specified by a variable
setVariable($mySleepInterval, 17)
sleep($mySleepInterval)
sleepUntil(<Zeit als String-Ausdruck>)
Der Befehl sleepUntil() lässt das Skript pausieren, bis die angegebene Zeit erreicht ist. Wenn die Zeit bereits verstrichen ist, wartet das Skript bis zum nächsten Tag. Das Format für die Zeit ist HH:MM oder HH:MM:SS in einem 24-Stunden-Zeitraum.
// 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()
Dieser Skriptbefehl hält das Skript an, bis der nächste 'auf die Minute genau'-Stundenbruchteil 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 die setVariable
Befehl. Sie müssen einen Variablennamen angeben (beginnend mit einem $
) und den Wert, den diese Variable enthalten soll. Der Wert kann eine Zahl, Text (in Anführungszeichen eingeschlossen) oder der boolesche Wert sein wahr
und falsch
.
setVariable($myText, "This is a text")
setVariable($myNumber, 15.73)
setVariable($myBoolValue, false)
setGlobal($variablenname, <Wert>)
Eine globale Variable kann sowohl in der aktuellen Ebene als auch in allen darüber liegenden Automatisierungsebenen verwendet werden. Diese Funktion ist besonders nützlich, wenn Sie dieselben Informationen über mehrere Automatisierungsebenen hinweg gemeinsam nutzen möchten, z. B. die API-Endpunkte einer bestimmten Ebene. Für den Wert der Variablen gelten die gleichen Regeln wie für die Variable setVariable
Befehl.
Bitte beachten Sie, dass globale Variablen für andere Automatisierungsebenen zugänglich sind, solange die ursprüngliche Ebene aktiv ist. Auf diese Weise können Sie globale Variablen umschalten, indem Sie eine andere Ebene mit anderen globalen Variablendefinitionen aktivieren. Die beste Vorgehensweise in diesem Szenario ist, die Option 'Ebene ausschalten' der Automatisierungsebene auf 'Manuell' zu setzen und die globalen Variablen im Skript 'On Live' zu definieren.
setGlobal($myGlobalText, "This is a text")
setGlobal($myGlobalNumber, 15.73)
setGlobal($myGlobalBoolValue, false)
concat(1TP11ErgebnisVariablenname, )
Dieser Skriptbefehl verknüpft Zeichenketten miteinander und speichert das Ergebnis als Zeichenkette.
// define some variables
setVariable($myVariableA, "This is")
setVariable($myVariableB, "text.")
// concatenate those variables and store the result into a new one
concat($myResultVariable, $myVariableA + " a " + $myVariableB)
// The variable $myResultVariable contains "This is a text.".
math(1TP11ErgebnisVariablenname, )
Dieser Befehl führt einfache mathematische Berechnungen durch, einschließlich Addition (+), Subtraktion (-), Multiplikation (*) und Division (/). Bitte beachten Sie, dass die Berechnungen in der Reihenfolge ausgeführt werden, in der sie erscheinen und NICHT der PEMDAS/BODMAS-Regel folgen.
// define some variables
setVariable($myVariableA, 3)
setVariable($myVariableB, 5)
// perform the calculation
math($myResult, $myVariableA + 2 * $myVariableB)
// The result in $myResult is 25 (!) and not 13
if(, , ) [else] endif
Diese wenn
Anweisung vergleicht zwei numerische Ausdrücke mit einem angegebenen Komparator. Wenn der Vergleich wahr ist, werden der oder die folgenden Befehle ausgeführt. Andernfalls werden die nachfolgenden Befehle übersprungen, bis ein sonst
oder endif
erreicht ist.
Gültige Vergleichsprodukte sind:
“==” | ist gleich |
“!=” | nicht gleich |
">" | größer als |
"<" | weniger als |
">=" | größer oder gleich als |
"<=" | weniger oder weniger als |
// define a variable
setVariable($myVariable, 3)
// test if the variable is bigger than 10
if($myVariable, ">", 10)
setVariable($text, "is bigger than 10")
else
setVariable($text, "is less or equal 10")
endif
// The result in $text is "is less or equal 10"
ifString(, , ) [else] endif
Diese ifString
Anweisung vergleicht zwei String-Ausdrücke unter Verwendung eines angegebenen Komparators. Der Vergleich basiert auf dem ASCII-Zeichencode jedes Buchstabens in den Zeichenketten. Wenn der Vergleich wahr ist, werden die folgenden Befehle ausgeführt. Andernfalls werden die nachfolgenden Befehle übersprungen, bis ein sonst
oder endif
erreicht ist.
Für gültige Vergleicher siehe den if-Befehl.
// define a variable
setVariable($myVariable, "mimoLive")
// test if the variable is "mimoLive"
if($myVariable, "==", "mimoLive")
setVariable($text, "yes")
else
setVariable($text, "no")
endif
// The result in $text is "yes"
ifLayerIsOn(<API Ebenen-ID als String Ausdruck>) - ifLayerIsOff(<API Ebenen-ID als String Ausdruck>) [else] endif
Diese wenn
Anweisungen testen, ob eine bestimmte Ebene gerade aktiv ist oder nicht. Wenn die angegebene Bedingung erfüllt ist (die Ebene ist ein- oder ausgeschaltet), werden die folgenden Befehle verarbeitet. Andernfalls werden die nachfolgenden Befehle übersprungen, bis eine sonst
oder endif
erreicht ist.
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(<API Ebenen-ID als String Ausdruck>) - ifLayerSetIsInactive(<API Ebenen-ID als String Ausdruck>) [else] endif
Diese wenn
Aussagen testen, ob eine bestimmte Ebenen-Set derzeit aktiv ist oder nicht. Wenn ja, werden die folgenden Befehle verarbeitet. Andernfalls werden die nachfolgenden Befehle übersprungen, bis ein sonst
oder endif
erreicht ist.
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(, , , ) [else] endif
Mit diesem komplexen Befehl können Sie jeden Parameter einer Ebene testen, den die HTTP API liefert. Sie müssen eine Ebene durch ihre API-ID, den Schlüsselpfad innerhalb der von der HTTP-API zurückgegebenen JSON-Daten, einen Komparator (als String in Anführungszeichen, z.B. "=="
), und einen Wert.
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
Die Schleife
ermöglicht es Ihnen, Code mehrfach auszuführen. Wenn Sie die Anzahl der Iterationen nicht angeben, wird die Schleife unbegrenzt ausgeführt. Der Befehl Pause
Befehl können Sie die Schleife jederzeit verlassen. endloop
ist notwendig, um das Ende des Befehlsblocks zu markieren, 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 httpRequest()
Befehl löst die angegebene URL aus. Dies bietet Ihnen eine große Flexibilität bei der Verwendung dieses Skriptbefehls. In mimoLive
kann es sogar Aktionen in anderen Dokumenten oder Remote-Skripten auslösen. Für Details über mimoLive
HTTP-API-Befehle, konsultieren Sie bitte die HTTP API Dokumentation, um alle möglichen API-Aufrufe zu erkunden.
// eine Ebene einschalten
httpRequest("http://127.0.0.1:8989/api/v1/documents/188462841/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B/setLive")
httpRequestJSON(1TP11ErgebnisVariablenname, )
Dieser Befehl liest die Antwort des HTTP-Aufrufs als JSON und speichert die Daten in der angegebenen Ergebnisvariablen. Danach können Sie auf die Daten über den Befehl getJSONData()
Befehl.
getJSONData($resultVariableName, $jsonDataVariable, )
Dieser Befehl ruft einen bestimmten Datenwert aus einer JSON-Struktur ab, die in einer Variablen gespeichert ist. Sie müssen die Variable angeben, die die JSON-Daten enthält ($jsonDataVariable
), den Pfad zu den Daten innerhalb der JSON-Struktur (), und die Variable, in der das Ergebnis gespeichert werden soll (
1TP11ErgebnisVariablenname
). Dies ermöglicht eine präzise Extraktion von Daten zur weiteren Verarbeitung oder Verwendung in Ihrem Skript.
// Alle Daten einer Ebene abrufen
httpRequestJSON($myLayerData, "http://127.0.0.1:8989/api/v1/documents/188462841/layers/BA868701-8131-49CB-8EDD-8C7E6E7CD60B")
// den Wert des Lautstärkereglers abrufen
getJSONData($volumenDial, $myLayerData, "data.attributes.volume")// Die Variable $volumenDial enthält nun einen Wert zwischen 0 und 1.
> Debugger Haltepunkt
Wenn der Skript-Debugger aktiviert ist und der Debugging-Modus auf 'Kontinuierlich' eingestellt ist, wird die Ausführung des Skripts an dieser Markierung angehalten und gewartet, bis der mimoLive-Bediener auf die Schaltfläche 'Nächster Schritt' klickt. Weitere Informationen zu den Debugging-Möglichkeiten finden Sie unter 'Best Practices - Debugging von Skripten'.
Datenarten
API Endpunkte
Der Parameter sollte ein API-Endpunkt für einen Layer, eine Layer-Variante, ein Layer-Set, eine Quelle oder ein Ausgabeziel sein. Sie können diese API-Endpunkte erhalten, indem Sie mit der rechten Maustaste auf das Objekt im mimoLive-Dokument klicken. Es sollte ein Kontextmenü mit einem Menüpunkt 'API-Endpunkt in die Zwischenablage kopieren' erscheinen.
Mit dieser Aktion wird der API-Endpunkt für dieses Objekt in die Zwischenablage kopiert. Wenn Sie ihn an anderer Stelle einfügen, sieht er etwa so aus:
/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
Für Ebenen-bezogene Befehle können Sie die API Endpunkte zum wichtigen Teil nur durch Entfernen des Präfixes "/api/v1/documents//layers/" . 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")
Beste Praxis
API-Endpunkte
Wie man API-Endpunkte erhält
- Klicken Sie mit der rechten Maustaste auf die Ebene und wählen Sie "API-Endpunkt kopieren".
- mit Hilfe des Befehls getAPIEndpoint() (siehe Dokumentation)
Adressierung von API-Endpunkten
Sie können entweder den kompletten API-Endpunkt verwenden oder den Teil "/api/v1/documents//" entfernen, um sicherzustellen, dass Ihr Skript auch funktioniert, wenn Sie es in ein anderes Dokument kopieren. Die Dokument-ID ist jedoch wichtig, wenn Sie einen API-Punkt in einem anderen mimoLive-Dokument ansprechen wollen.
Skripte debuggen
In der Automatisierungsebene ist ein Skript-Debugger integriert. Sie können die Ebene in den Debugging-Modus versetzen, indem Sie den Ebenenparameter "Debug" auf ein setzen.
TBD.
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.