Configurar uma porta de sinal para gravação de vídeo baseada em eventos com a Análise Dinâmica de Vídeo

Observação

Para obter a versão mais recente do serviço, confira Analisador de Vídeo do Azure.

Em um grafo de mídia, um nó processador de porta de sinal permite que você encaminhe mídia de um nó para outro quando a porta é disparada por um evento. Quando é disparada, a porta é aberta e permite o fluxo de mídia por um período especificado. Na ausência de eventos para disparar a porta, ela fecha e o fluxo de mídia é interrompido. Você pode usar o processador de porta de sinal para a gravação de vídeo baseada em eventos.

Neste artigo, você aprenderá a configurar um processador de porta de sinal.

Leitura prévia sugerida

Problema

Um usuário pode querer iniciar a gravação em um momento específico, antes ou depois de a porta ser disparada por um evento. O usuário conhece a latência aceitável no sistema. Por isso, ele quer especificar a latência do processador da porta de sinal. Ele também quer especificar a duração mínima e máxima da gravação, independentemente de quantos novos eventos forem recebidos.

Cenário do caso de uso

Digamos que você queira gravar vídeo sempre que a porta da frente de seu prédio for aberta. Você deseja que a gravação:

  • Inclua os X segundos antes da abertura da porta.
  • Dure pelo menos Y segundos se a porta não for aberta novamente.
  • Dure no máximo Z segundos se a porta for aberta repetidamente.

Você sabe que o sensor da porta tem uma latência de K segundos. Para reduzir a chance de eventos serem desconsiderados como chegadas tardias, você quer dar pelo menos K segundos para que os eventos cheguem.

Solução

Para resolver o problema, modifique os parâmetros do processador de porta de sinal.

Para configurar um processador de porta de sinal, use estes quatro parâmetros:

  • Janela de avaliação de ativação
  • Deslocamento do sinal de ativação
  • Janela de ativação mínima
  • Janela de ativação máxima

Quando o processador de porta de sinal é disparado, ele permanece aberto pelo tempo mínimo de ativação. O evento de ativação começa no carimbo de data/hora do evento mais antigo somado ao deslocamento do sinal de ativação.

Se o processador de porta de sinal for disparado novamente enquanto estiver aberto, o temporizador será redefinido e a porta permanecerá aberta, pelo menos, pelo tempo mínimo de ativação. O processador de porta do sinal nunca permanece aberto além do tempo máximo de ativação.

Um evento (evento 1) que ocorre antes de outro evento (evento 2), com base nos carimbos de data/hora de mídia, poderia ser desconsiderado se o sistema apresentasse um retardo e o evento 1 chegasse ao processador de porta de sinal após o evento 2. Se o evento 1 não chegar entre a chegada do evento 2 e a janela de avaliação de ativação, ele será desconsiderado. Ele não passa pelo processador de porta de sinal.

IDs de correlação são definidas para cada evento. Essas IDs são definidas começando pelo evento inicial. Elas são sequenciais para cada evento a seguir.

Importante

O tempo da mídia é baseado no carimbo de data/hora da mídia referente a quando um evento ocorre nela. A sequência dos eventos que chegam na porta de sinal pode não refletir a sequência de chegada dos eventos em termos do tempo da mídia.

Parâmetros, com base no tempo físico em que os eventos chegam na porta de do sinal

  • minimumActivationTime (menor duração possível de uma gravação) : o número mínimo de segundos que o processador da porta de sinal permanece aberto após ter sido disparado para receber novos eventos, a menos que seja interrompido pelo maximumActivationTime.
  • maximumActivationTime (duração mais longa possível de uma gravação) : o número máximo de segundos desde o evento inicial que o processador da porta de sinal permanece aberto após ter sido disparado para receber novos eventos, independentemente dos eventos recebidos.
  • activationSignalOffset: o número de segundos entre a ativação do processador da porta de sinal e o início da gravação do vídeo. Normalmente, esse valor é negativo porque a gravação é iniciada antes do evento de disparo.
  • activationEvaluationWindow: partindo do evento de disparo inicial, o número de segundos em que um evento ocorrido antes do evento inicial, em tempo de mídia, deve chegar ao processador da porta de sinal antes de ser desconsiderado e ser considerado uma chegada tardia.

Observação

Uma chegada tardia é qualquer evento que chega após o fim da janela de avaliação de ativação, mas antes do evento inicial no tempo da mídia.

Limites dos parâmetros

  • activationEvaluationWindow: 0 a 10 segundos
  • activationSignalOffset: -1 a 1 minuto
  • minimumActivationTime: 1 segundo a 1 hora
  • maximumActivationTime: 1 segundo a 1 hora

No caso de uso, você definiria os parâmetros da seguinte maneira:

  • activationEvaluationWindow: K segundos
  • activationSignalOffset: -X segundos
  • minimumActivationWindow: Y segundos
  • maximumActivationWindow: Z segundos

Veja um exemplo de como a seção do nó Processador de porta de sinal ficaria em uma topologia de grafo de mídia com os seguintes valores de parâmetro:

  • activationEvaluationWindow: 1 segundo
  • activationSignalOffset: -5 segundos
  • minimumActivationTime: 20 segundos
  • maximumActivationTime: 40 segundos

Importante

O formato de duração ISO 8601 é esperado para cada valor de parâmetro. Por exemplo, PT1S = 1 segundo.

"processors":              
[
          {
            "@type": "#Microsoft.Media.MediaGraphSignalGateProcessor",
            "name": "signalGateProcessor",
            "inputs": [
              {
                "nodeName": "iotMessageSource"
              },
              {
                "nodeName": "rtspSource"
              }
            ],
            "activationEvaluationWindow": "PT1S",
            "activationSignalOffset": "-PT5S",
            "minimumActivationTime": "PT20S",
            "maximumActivationTime": "PT40S"
          }
]

Agora, considere como essa configuração do processador de porta de sinal se comportará em diferentes cenários de gravação.

Cenários de gravação

Um evento de uma fonte (ativação normal)

Um processador de porta de sinal que recebe um evento resulta em uma gravação que começa 5 segundos (sinal de ativação = 5 segundos) antes que o evento chegue à porta. O restante da gravação tem 20 segundos (tempo mínimo de ativação = 20 segundos) porque nenhum outro evento chega antes do término do tempo mínimo de ativação para disparar novamente a porta.

Diagrama de exemplo:

Diagrama mostrando a ativação normal de um evento de uma fonte.

  • Duração da gravação = – deslocamento + minimumActivationTime = [E1 + deslocamento, E1 + minimumActivationTime]

Dois eventos de uma fonte (ativação disparada novamente)

Um processador de porta de sinal que recebe dois eventos resulta em uma gravação que começa 5 segundos (deslocamento do sinal de ativação = 5 segundos) antes que o evento chegue à porta. Além disso, o evento 2 chega 5 segundos após o evento 1. Como o evento 2 chega antes do final do tempo mínimo de ativação do evento 1 (20 segundos), a porta é disparada novamente. O restante da gravação tem 20 segundos (tempo mínimo de ativação = 20 segundos) porque nenhum outro evento chega antes do término do tempo mínimo de ativação do evento 2 para disparar novamente a porta.

Diagrama de exemplo:

Diagrama que mostra a ativação disparada novamente de dois eventos de uma fonte.

  • Duração da gravação = – deslocamento + (chegada do evento 2 – chegada do evento 1) + minimumActivationTime

N eventos de uma fonte (ativação máxima)

Um processador de porta de sinal que recebe N eventos resulta em uma gravação que começa 5 segundos (deslocamento do sinal de ativação = 5 segundos) antes que o primeiro evento chegue à porta. À medida que cada evento chega antes do término do tempo mínimo de ativação de 20 segundos do evento anterior, a porta é disparada continuamente. Ela permanece aberta até o tempo máximo de ativação de 40 segundos após o primeiro evento. Em seguida, a porta fecha e não aceita mais nenhum novo evento.

Diagrama de exemplo:

Diagrama mostrando a ativação máxima de N eventos de uma fonte.

  • Duração da gravação = – deslocamento + maximumActivationTime

Importante

Os diagramas anteriores pressupõem que todos os eventos cheguem no mesmo instante em tempo físico e em tempo de mídia. Ou seja, eles supõem que não haja chegadas tardias.

Próximas etapas

Experimente o Tutorial de gravação de vídeo com base em eventos. Comece editando topology.json. Modifique os parâmetros do nó signalgateProcessor e siga o restante do tutorial. Examine as gravações de vídeo para analisar o efeito dos parâmetros.