mimoLive® - Manual do utilizador

Seleccionadores genéricos
Fósforos exactos apenas
Pesquisa no título
Pesquisa no conteúdo
Selectores de tipo de correio

Manual - Tabela de conteúdos

Automação

Tabela de Conteúdos

Agilize a sua produção com a camada de automatização do mimoLive

A camada de Automação do mimoLive foi originalmente desenvolvida como uma prova de conceito, mas desde então provou ser uma ferramenta incrivelmente útil para os utilizadores. Esta camada pode ser usada para automatizar a ativação e desativação de camadas numa sequência específica, ou em alturas pré-determinadas.

Isto pode ser especialmente útil para criar produções complexas com várias camadas e entradas, uma vez que elimina a necessidade de comutação e sincronização manuais. Com a camada de automatização, os utilizadores podem concentrar-se na criação de conteúdos cativantes e deixar que o software trate da sincronização e da sequenciação da sua produção.

Exemplo: Camada de automatização

Automação

Aviso: Os scripts de automação no mimoLive não são executados em tempo real

Tenha em atenção que o tempo dos scripts de automatização no mimoLive pode não ser exato devido à natureza assíncrona dos pedidos HTTP chamados pelo motor de renderização de vídeo. Esses scripts dependem de solicitações HTTP para a API e a duração dessas solicitações não pode ser determinada com precisão, resultando em possíveis discrepâncias de tempo. Tenha isto em conta quando utilizar scripts de automatização no seu fluxo de trabalho de produção.

Pré-requisito

Para que esta camada funcione, é necessário ativar a função HTTP Servidor no mimoLive para ativar o Controlo Remoto API. Ir para mimoLive -> Preferências -> Controlos remotos: Marque a opção "Permitir acesso ao controlo remoto". (Atualmente, só funciona sem uma palavra-passe)

6102d04e 4eb3 4600 b410 0d2b2aef0767

Configurar a camada de automatização

Existem duas opções sobre a forma como a camada se deve comportar depois de ser activada:

OpçãoComportamento
Desligar automaticamente a camadaPara esta opção só existe um guião disponível. Quando este guião tiver sido processado, a camada desliga-se. Esta opção pode ser utilizada se uma sequência tiver de ser executada uma vez.
Desligar a camada manualmente (por exemplo, pelo operador)Neste caso, existem três guiões disponíveis. Quando a camada é activada, o script "On Live" é processado. Uma vez feito isto, o script "While Live" é processado num ciclo interminável. Quando a camada é desligada, o script "Turned Off" (Desligado) é processado.
Se não tiver necessidade de uma determinada fase, pode deixar o guião associado vazio.

Código fonte Comentários

Para o ajudar a lembrar-se da função do seu script, recomendamos a utilização de comentários no seu script:

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

!Os comentários têm de estar numa linha separada e o // tem de estar no início dessa linha.

Comandos de scripting

A linguagem de scripting é proprietária e tem apenas alguns comandos de visualização.

layerOn(API ID da camada)

Este comando permite-lhe ativar uma camada ou uma variante de camada.

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

Este comando permite-lhe desativar uma camada ou uma variante de camada. Este comando permite-lhe desativar uma camada ou uma variante de camada.

// 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 do conjunto de camadas)

Este comando pode ser utilizado para acionar a chamada para um determinado Conjuntos de camadas.

// 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 do destino de saída)

Utilize este comando para ativar um destino de saída.

outputOff(API ID do destino de saída)

Utilize este comando para desativar um destino de saída.

dormir(Segundos)

O comando sleep() faz uma pausa no cálculo do script durante os segundos indicados.

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

O comando sleepUntil() permite que o script faça uma pausa até que o tempo especificado seja atingido. Se o tempo já tiver passado, o script aguardará até ao dia seguinte.

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

Este comando do guião faz uma pausa no guião até ser atingido o próximo atrito de uma hora "ao minuto".

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

Para definir uma variável local, utilize o comando setVariable. É necessário especificar um nome de variável (com um postfixo $) e o valor que esta variável deve ter. O valor pode ser um número, um texto (entre aspas) ou os valores booleanos "true" e "false". Pode utilizar a variável em todos os campos dos outros comandos.

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

setGlobal($variableName, valor)

Uma variável global pode ser utilizada na camada atual ou em todas as camadas de automatização acima desta camada. Isto é muito útil se quiser ter a mesma informação em todas as camadas de automatização (por exemplo, a variável API ID de uma determinada camada). Para o valor da variável, aplica-se o mesmo que no comando setVariable descrito.

Tenha em atenção que as variáveis globais são válidas para outras camadas de Automatização, desde que a camada esteja ativa. Desta forma, pode mudar as variáveis globais mudando para uma camada diferente com definições de variáveis globais diferentes.

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

ifLayerIsOn() - ifLayerIsOff() [else] endif

Estas instruções if testam se uma determinada camada está atualmente ativa ou não. Se assim for, os comandos seguintes são processados. Caso contrário, os comandos seguintes são ignorados até que um else ou endif seja encontrado.

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

Essas instruções if estão a testar se um determinado Conjunto de camadas está atualmente ativo ou não. Em caso afirmativo, são processados os comandos seguintes. Caso contrário, os comandos seguintes são ignorados até ser encontrado um else ou 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(, , , )

Este comando complexo permite-lhe testar na camada qualquer parâmetro que o HTTP API fornece. É necessário especificar uma camada pelo seu API ID, o caminho da chave dentro do JSON dados o HTTP API retorna, um comparador (entre aspas como uma cadeia de caracteres!) (por exemplo, "==") e um valor.

Os valores válidos do comparador são:

"=="iguais
"!="não é igual
">"superior a
"<"menos de
">="maior ou igual a
"<="inferior ou igual 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

O comando loop permite-lhe executar um determinado código várias vezes. Se não especificar as iterações, o loop será executado infinitamente. O comando break permite-lhe sair do ciclo em qualquer altura. O comando endloop é necessário no final do bloco de comandos que deve ser executado em ciclo.

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

O httpRequest() dá-lhe muita flexibilidade sobre o que acionar com este script. Mesmo noutros documentos ou scripts remotos. Por favor, leia a HTTP API documentação para todos API chamadas possíveis.

Tipos de dados

API Pontos finais

O parâmetro deve ser um API Endpoint para uma camada, uma variante de camada ou um conjunto de camadas, é possível obter esses API Endpoints clicando com o botão direito do rato no objeto no documento mimoLive. Deve aparecer um menu de contexto com a opção "Copiar API Ponto de extremidade".

Isto irá copiar o API Ponto final para este objeto no quadro anterior. Se o colar num sítio qualquer, terá o seguinte aspeto:

/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

Pode reduzir o API Endpoints apenas para a última parte. Isto tornará o seu guião mais curto, como se mostra aqui:

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

 

Este parâmetro representa um tempo em representação de 24 horas. Horas, minutos e segundos delimitados por ":".

Ideias de scripting

Apresentar um anúncio de 10 em 10 minutos

Em combinação com um "PIP Janela" e uma "Fonte de lista de reprodução multimédia" que contenha vários clips de filmes publicitários curtos, pode reproduzir uma publicidade de 10 em 10 minutos. Certifique-se de que desmarca a opção "Non-Stop" na fonte Media Playlist. Desta forma, sempre que o PIP Se a janela for definida como em direto, reproduzirá um anúncio da fonte da lista de reprodução e desliga-se. Passados 10 minutos, será reproduzido o anúncio seguinte.

Executar um ferrão antes de mudar para uma determinada camada

É necessário preparar um vídeo curto que tenha uma transição até cobrir todo o ecrã (por exemplo, após 1 segundo). Após 1 segundo, ativa a camada que pretende revelar. Coloque esta camada por baixo da camada que está a reproduzir o vídeo de efeito. Agora que o vídeo com a ferrão está a cobrir o ecrã, a mudança da camada abaixo não pode ser vista. O vídeo da adrenalina deve continuar a revelar a camada por baixo. Certifica-te de que o vídeo com a adaga é processado no codec de vídeo ProRes4444, para que tenha a transparência necessária para a transição.

Criar uma abertura de espetáculo complexa

Como pode ativar e desativar camadas uma após a outra durante um longo período de tempo, pode ter várias camadas de texto ou de anotações, uma camada de colocação com gráficos ou até mesmo terços inferiores que preencham o ecrã para criar o seu próprio programa de abertura animado. Seja criativo!

Acionar um controlo remoto HTTP URL através de um toque na superfície do controlo remoto

Se for necessário acionar um HTTP Pedido através de um botão no seu Superfície de controlo remoto pode adicionar uma camada de automatização à sua pilha de camadas e definir a opção "Desligar camada" dessa camada para "Automaticamente". Agora, pode introduzir um único comando httpRequest() no campo de guião "On Live". Na superfície de controlo remoto, adicione o botão Em direto desta camada ao esquema. Quando premir este botão na superfície de controlo remoto, o HTTP será efectuado.

A sua opinião

Como avalia a sua experiência com esta funcionalidade do mimoLive?

Última atualização Páginas do manual

Email Newsletter

Português

Participe na demonstração 24/7 do Zoom® em direto

*necessário

Precisa de carregar o conteúdo de reCAPTCHA para enviar o formulário. Tenha em atenção que, ao fazê-lo, irá partilhar dados com fornecedores terceiros.

Mais informações