mimoLive® - Manuale d'uso

Selettori generici
Solo corrispondenze esatte
Ricerca nel titolo
Ricerca nel contenuto
Selettori del tipo di post

Manuale - Tabella dei contenuti

Automazione

Indice dei contenuti

Ottimizzare la produzione con il livello di automazione di mimoLive

Il livello Automation di mimoLive è stato originariamente sviluppato come proof of concept, ma da allora si è rivelato uno strumento incredibilmente utile per gli utenti. Questo livello può essere usato per automatizzare l'accensione e lo spegnimento dei livelli in una sequenza specifica o in momenti predeterminati.

Questo può essere particolarmente utile per la creazione di produzioni complesse con più livelli e ingressi, in quanto elimina la necessità di commutazione e temporizzazione manuale. Con il livello di automazione, gli utenti possono concentrarsi sulla creazione di contenuti coinvolgenti e lasciare che sia il software a gestire la temporizzazione e la sequenza della produzione.

Esempio: Livello di automazione

Automazione

Attenzione: Gli script di automazione in mimoLive non vengono eseguiti in tempo reale

Si noti che la tempistica degli script di automazione in mimoLive potrebbe non essere accurata a causa della natura asincrona delle richieste HTTP richiamate dal motore di rendering video. Questi script si basano su richieste HTTP all'API e la durata di queste richieste non può essere determinata con precisione, con conseguenti potenziali discrepanze di tempistica. Tenete presente questo aspetto quando utilizzate gli script di automazione nel vostro flusso di lavoro di produzione.

Prerequisito

Per far funzionare questo livello è necessario attivare l'opzione HTTP Server in mimoLive per attivare il Controllo Remoto API. Vai a mimoLive -> Preferenze -> Controlli remoti: Selezionare l'opzione "Consenti accesso al controllo remoto". (Attualmente funziona solo senza password)

6102d04e 4eb3 4600 b410 0d2b2aef0767

Impostare il livello di automazione

Esistono due opzioni su come il livello deve comportarsi dopo essere stato attivato:

OpzioneComportamento
Spegnimento automatico del livelloPer questa opzione è disponibile un solo script. Una volta elaborato questo script, il livello si disattiva da solo. Questa opzione può essere utilizzata se una sequenza deve essere eseguita una sola volta.
Spegnimento manuale del livello (ad es. da parte dell'operatore)In questo caso sono disponibili tre script. Quando il layer viene commutato in modalità live, viene elaborato lo script "On Live". Una volta fatto ciò, lo script "While Live" viene elaborato in un ciclo infinito. Quando il layer viene spento, viene elaborato lo script "Turned Off".
Se non si ha bisogno di una determinata fase, si può lasciare vuoto lo script associato.

Codice sorgente Commenti

Per aiutarvi a ricordare la funzione del vostro script, vi consigliamo di utilizzare i commenti nel vostro script:

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

!I commenti devono essere in una riga separata e il simbolo // deve trovarsi all'inizio della riga.

Comandi di scripting

Il linguaggio di scripting è proprietario e dispone solo di una serie di comandi.

layerOn(API ID strato)

Questo comando consente di attivare un livello o una variante di livello.

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

Questo comando consente di disattivare un livello o una variante di livello. Questo comando consente di disattivare un livello o una variante di livello.

// 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 set di livelli)

Questo comando può essere utilizzato per attivare il richiamo per un determinato Set di livelli.

// 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 ID destinazione di uscita)

Utilizzare questo comando per attivare una destinazione di uscita.

outputOff(API ID destinazione di uscita)

Utilizzare questo comando per disattivare una destinazione di uscita.

dormire(Secondi)

Il comando sleep() mette in pausa il calcolo dello script per i secondi indicati.

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

Il comando sleepUntil() permette allo script di fermarsi fino al raggiungimento dell'ora specificata. Se l'ora è già passata, lo script aspetterà fino al giorno successivo.

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

Questo comando di script metterà in pausa lo script fino al raggiungimento della prossima frizione "al minuto" di un'ora.

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

setVariabile($variabileNome, valore)

Per definire una variabile locale, utilizzare il comando setVariable. È necessario specificare un nome di variabile (con il prefisso $) e il valore che questa variabile deve avere. Il valore può essere un numero, un testo (tra virgolette) o i valori booleani "true" e "false". La variabile può essere utilizzata in tutti i campi degli altri comandi.

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

setGlobal($variabileNome, valore)

Una variabile globale può essere usata nel livello corrente o in tutti i livelli di automazione sopra questo livello. Ciò è molto utile se si desidera avere le stesse informazioni in tutti i livelli di automazione (ad esempio, la variabile API ID di un certo livello). Per il valore della variabile vale quanto descritto nel comando setVariable.

Si noti che le variabili globali sono valide per gli altri livelli dell'Automazione finché il livello è attivo. In questo modo è possibile cambiare le variabili globali passando a un livello diverso con definizioni di variabili globali diverse.

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

ifLayerIsOn() - ifLayerIsOff() [else] endif

Le istruzioni if verificano se un determinato livello è attualmente attivo o meno. Altrimenti i comandi seguenti vengono saltati finché non viene trovato un else o un 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

Queste istruzioni if verificano se un certo Set di livelli è attualmente attivo o meno. In caso affermativo, vengono elaborati i comandi seguenti. Altrimenti i comandi seguenti vengono saltati finché non viene trovato un else o un 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(, , , )

Questo comando complesso consente di testare su un livello qualsiasi parametro che l'opzione HTTP API fornisce. È necessario specificare un livello con il suo nome API ID, il percorso della chiave all'interno del file JSON dati il HTTP API restituisce un comparatore (tra virgolette come stringa!) (ad esempio "==") e un valore.

I valori validi del comparatore sono:

"=="uguale
"!="non uguale
">"maggiore di
"<"meno di
">="maggiore o uguale a
"<="inferiore o uguale a
// 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

Il comando loop consente di eseguire un determinato codice più volte. Se non si specificano le iterazioni, il ciclo verrà eseguito all'infinito. Il comando break consente di uscire dal ciclo in qualsiasi momento. endloop è necessario alla fine del blocco di comandi che deve essere eseguito in loop.

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

httpRichiesta()

Il metodo httpRequest() offre un'ampia flessibilità su cosa attivare con questo script. Anche in altri documenti o script remoti. Si prega di leggere la sezione HTTP API documentazione per tutti API chiamate possibili.

Tipi di dati

API Punti finali

Il parametro deve essere un API Endpoint per un Layer, una Variante di Layer o un Set di Layer è possibile ottenere questi API Endpoint facendo clic con il tasto destro del mouse sull'oggetto nel documento mimoLive. Dovrebbe apparire un menu contestuale con la voce "Copia API Voce di menu "Endpoint".

Questo copierà il file API Punto finale per questo oggetto nella scheda del passato. Se lo si incolla da qualche parte, avrà un aspetto simile a questo:

/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

È possibile ridurre il API I punti finali solo all'ultima parte. In questo modo lo script sarà più breve, come mostrato qui:

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

 

Questo parametro rappresenta l'ora in 24 ore. Ore, minuti e secondi delimitati da ":".

Idee di scripting

Pubblicare un annuncio ogni 10 minuti

In combinazione con un'opzione "PIP Il livello "Finestra" e una "sorgente Playlist multimediale" contenente più brevi filmati pubblicitari consentono di riprodurre una pubblicità ogni 10 minuti. Assicurarsi di deselezionare l'opzione "Non-Stop" nella sorgente Media Playlist. In questo modo ogni volta che la PIP Se la finestra è impostata su "live", riproduce un annuncio dalla sorgente Playlist e si spegne. Dopo 10 minuti verrà riprodotto l'annuncio successivo.

Eseguire un pungiglione prima di passare a un determinato livello.

È necessario preparare un breve video stinger che avrà una transizione interna fino a coprire tutto lo schermo (ad esempio, dopo 1 secondo). Dopo 1 secondo si passa in diretta al livello che si desidera rivelare. Posizionare questo livello sotto il livello che riproduce il video stinger. Ora che il video stinger copre lo schermo, la commutazione del livello sottostante non può essere vista. Il video stinger dovrebbe continuare a rivelare il livello sottostante. Assicurarsi che il video stinger sia renderizzato con il codec video ProRes4444, in modo da avere la trasparenza necessaria per la transizione.

Creare un'apertura di spettacolo complessa

Poiché è possibile attivare e disattivare i livelli uno dopo l'altro per un periodo di tempo più lungo, è possibile avere più livelli di testo o di annotazione, livelli di piazzamento che mostrano la grafica o persino terzi inferiori che riempiono lo schermo per creare il proprio spettacolo animato. Siate creativi!

Attivare un telecomando HTTP URL con un tocco sulla superficie del telecomando

Se è necessario attivare un HTTP Richiesta tramite un pulsante sul vostro Superficie di controllo remoto è possibile aggiungere un livello di automazione alla pila di livelli e impostare l'opzione "Switch Layer Off" di tale livello su "Automatically". Ora è possibile inserire un singolo comando httpRequest() nel campo di script "On Live". Sulla superficie di controllo remoto aggiungere il pulsante Live di questo livello al layout. Una volta premuto questo pulsante sulla superficie di controllo remoto, il HTTP sarà eseguita la richiesta.

Il vostro feedback

Come valuta la sua esperienza con questa funzione di mimoLive?

Newsletter via e-mail

Italiano

Partecipate alla dimostrazione Zoom® in diretta 24/7

*necessario

Devi caricare i contenuti da reCAPTCHA per inviare il modulo. Si prega di notare che in questo modo si condividono i dati con provider di terze parti.

Ulteriori informazioni