mimoLive® - Gebruikershandleiding

Generieke selecteurs
Alleen exacte overeenkomsten
Zoeken in titel
Zoeken in inhoud
Post Type Selectors

Handleiding - Inhoudsopgave

Automatisering

Inhoudsopgave

Stroomlijn uw productie met de automatiseringslaag van mimoLive

De Automation layer van mimoLive werd oorspronkelijk ontwikkeld als een proof of concept, maar heeft sindsdien bewezen een ongelooflijk nuttige tool te zijn voor gebruikers. Deze laag kan worden gebruikt om het in- en uitschakelen van lagen in een bepaalde volgorde of op vooraf bepaalde tijdstippen te automatiseren.

Dit kan vooral nuttig zijn voor het maken van complexe producties met meerdere lagen en ingangen, omdat het handmatig schakelen en timen overbodig wordt. Met de automatiseringslaag kunnen gebruikers zich concentreren op het maken van boeiende inhoud en de software de timing en opeenvolging van hun productie laten afhandelen.

Voorbeeld: Automatiseringslaag

Automatisering

Waarschuwing: Automatiseringsscripts in mimoLive draaien niet in real time

Houd er rekening mee dat de timing van automatiseringsscripts in mimoLive mogelijk niet nauwkeurig is vanwege de asynchrone aard van HTTP-verzoeken die door de video rendering engine worden opgeroepen. Deze scripts zijn afhankelijk van HTTP-verzoeken aan de API en de lengte van deze verzoeken kan niet nauwkeurig worden bepaald, wat resulteert in potentiële verschillen in timing. Houd hier rekening mee bij het gebruik van automatiseringsscripts in uw productieworkflow.

Voorwaarde

Om deze laag te laten werken moet je de HTTP Server in mimoLive om de afstandsbediening in te schakelen API. Ga naar mimoLive -> Voorkeuren -> Afstandsbediening: Vink de optie "Toegang op afstand toestaan" aan. (Momenteel werkt het alleen zonder wachtwoord)

6102d04e 4eb3 4600 b410 0d2b2aef0767

De automatiseringslaag instellen

Er zijn twee opties over hoe de laag zich moet gedragen na het live schakelen:

OptieGedrag
Laag automatisch uitschakelenVoor deze optie is slechts één script beschikbaar. Zodra dit script is verwerkt, schakelt de laag zichzelf uit. Deze optie kan worden gebruikt als een sequentie één keer moet worden uitgevoerd.
Laag handmatig uitschakelen (bijv. door operator)In dit geval zijn er drie scripts beschikbaar. Wanneer de laag live wordt geschakeld wordt het "On Live" script verwerkt. Zodra dit is gebeurd wordt het "While Live" script verwerkt in een eindeloze lus. Zodra de laag wordt uitgeschakeld wordt het "Turned Off" script verwerkt.
Als je een bepaalde fase niet nodig hebt, kun je het bijbehorende script leeg laten.

Broncode Opmerkingen

Om u te helpen de functie van uw script te onthouden, raden wij u aan gebruik te maken van commentaar in uw script:

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

!Commentaar moet op een aparte regel staan en de // moet aan het begin van die regel staan.

Scriptingopdrachten

De scripttaal is eigen en kent slechts een aantal commando's.

laag op(API Laag ID)

Met dit commando kunt u een laag of een laagvariant inschakelen.

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

Met dit commando kunt u een laag of een laagvariant uitschakelen. Met dit commando kun je een laag of een laagvariant uitschakelen.

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

Dit commando kan worden gebruikt om het terugroepen van een bepaalde Laag 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 Uitvoer Bestemming ID)

Gebruik dit commando om een uitvoerbestemming in te schakelen.

outputOff(API Uitvoer Bestemming ID)

Gebruik dit commando om een uitvoerbestemming uit te schakelen.

slaap(Seconden)

Het commando sleep() pauzeert de berekening van het script gedurende de opgegeven seconden.

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

Het commando sleepUntil() laat het script pauzeren tot de opgegeven tijd is bereikt. als de tijd al verstreken is, wacht het script tot de volgende dag.

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

Dit scriptcommando zal het script pauzeren totdat de volgende "op de minuut" frictie van een uur wordt bereikt.

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

setVariabele($variableName, waarde)

Om een lokale variabele te definiëren gebruikt u het commando setVariable. U moet een variabelenaam opgeven (met een $ postfix) en de waarde die deze variabele moet hebben. De waarde kan een getal, een tekst (tussen aanhalingstekens) of de booleaanse waarden "true" en "false" zijn. U kunt de variabele gebruiken in elk veld van de andere opdrachten.

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

setGlobal($variableName, waarde)

Een globale variabele kan worden gebruikt in de huidige laag, of in alle Automatiseringslagen boven deze laag. Dit is erg handig als je dezelfde informatie in alle Automation lagen wilt hebben (bijv. de API ID van een bepaalde laag). Voor de waarde van de variabele geldt hetzelfde als in het beschreven setVariable-commando.

De globale variabelen zijn geldig voor andere Automation-lagen zolang de laag zelf live is. Zo kunt u van globale variabelen wisselen door over te schakelen naar een andere laag met andere definities van globale variabelen.

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

ifLayerIsOn() - ifLayerIsOff() [else] endif

Die if-statements testen of een bepaalde laag momenteel live is of niet. Zo ja, dan worden de volgende commando's verwerkt. Anders worden de volgende commando's overgeslagen totdat een else of endif wordt gevonden.

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

Die if-statements testen of een bepaalde Laag Set live is of niet. Zo ja, dan worden de volgende commando's verwerkt. Anders worden de volgende commando's overgeslagen totdat een else of endif wordt gevonden.

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

Met dit complexe commando kun je op laag elke parameter testen die de HTTP API biedt. U moet een laag specificeren met zijn API ID, het sleutelpad binnen de JSON gegevens de HTTP API geeft een vergelijker (tussen aanhalingstekens als string!) (bijvoorbeeld "==") en een waarde.

Geldige vergelijkingswaarden zijn:

"=="is gelijk aan
"!="niet gelijk aan
">"groter dan
"<"minder dan
">="groter of gelijk aan
"<="minder of beter dan
// 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

Met het commando loop kun je een bepaalde code meerdere keren uitvoeren. Zonder specificatie van de iteraties zal de lus eindeloos doorlopen. Met het commando break kun je op elk moment uit de lus springen. endloop is nodig aan het einde van het commandoblok dat in een lus moet worden uitgevoerd.

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

De httpRequest() geeft je veel flexibiliteit over wat je met dit script kunt triggeren. Zelfs in andere documenten of externe scripts. Lees de HTTP API documentatie voor alle API oproepen mogelijk.

Gegevenstypen

API Eindpunten

De parameter moet een API Eindpunt voor een laag, een laagvariant of een laagset kunt u die bereiken. API Eindpunten door rechts te klikken op het object in het mimoLive document. Een contextmenu zou moeten verschijnen met een "Kopiëren API Endpoint" menu item.

Dit zal de API Eindpunt voor dit object naar het afgelopen bord. Als je het ergens plakt ziet het er ongeveer zo uit:

/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

U kunt de API Eindpunten alleen aan het laatste deel. Dit maakt uw script korter, zoals hier:

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

 

Deze parameter vertegenwoordigt een tijd in 24-uurs weergave. Uren, minuten en seconden gescheiden door ":".

Scripting ideeën

Draai elke 10 minuten een advertentie

In combinatie met een "PIP Window" laag een "Media Playlist bron" met meerdere korte reclamefilmpjes kunt u elke 10 minuten een reclame afspelen. Zorg ervoor dat u de optie "Non-Stop" in de Media Playlist-bron uitschakelt. Zo wordt elke keer dat de PIP Het venster wordt ingesteld op live en speelt één advertentie van de Playlist-bron af en schakelt zichzelf uit. Na 10 minuten wordt de volgende advertentie afgespeeld.

Voer een stinger uit voordat je naar een bepaalde laag overschakelt.

Je moet een korte stinger video voorbereiden die een In-transitie heeft totdat het het hele scherm bedekt (bijv. na 1 sec). Na 1 seconde schakel je live de laag die je wilt onthullen. Plaats deze laag onder de laag die de stinger video afspeelt. Nu de stinger video het scherm bedekt is het schakelen van de laag eronder niet te zien. De stinger video moet doorgaan met het onthullen van de laag eronder. Zorg ervoor dat de stinger video is gerenderd in ProRes4444 video codec zodat het de transparantie draagt die nodig is voor de overgang ermee.

Maak een complexe showopener

Omdat je lagen na elkaar kunt aan- en uitschakelen over een langere periode, kun je meerdere tekst- of annotatielagen, plaatsingslagen met afbeeldingen of zelfs onderlagen die het scherm vullen hebben om je eigen geanimeerde showopener te maken. Ga creatief aan de slag!

Een afstandsbediening activeren HTTP URL door een tik op het afstandsbedieningsoppervlak

Als u een HTTP Verzoek door een knop op uw Afstandsbedieningsoppervlak kun je een Automatiseringslaag toevoegen aan je lagenstapel en de optie "Laag uitschakelen" van die laag op "Automatisch" zetten. Nu kun je een enkel httpRequest() commando in het "On Live" scriptveld zetten. Voeg op je Remote Control Surface de Live-knop van deze laag toe aan de lay-out. Zodra u op deze knop op uw Remote Control Surface drukt, wordt de HTTP verzoek zal worden uitgevoerd.

Uw feedback

Hoe beoordeelt u uw ervaring met deze functie van mimoLive?

Laatste update handmatige pagina's

Email Nieuwsbrief

Nederlands

Doe mee aan de 24/7 Live Zoom® Demo

*vereist

Om het formulier te verzenden, moet u inhoud laden van reCAPTCHA. Houd er rekening mee dat u op deze manier gegevens deelt met providers van derden.

Meer informatie