Serviços de Mídia do Azure como uma fonte da Grade de Eventos

Este artigo fornece as propriedades e os esquemas para eventos de Serviços de Mídia.

Serviços de Mídia emite os tipos de evento relacionados ao trabalho descritos abaixo. Há duas categorias para os eventos Relacionados ao Trabalho: “Monitoramento de Alterações de Estado de Trabalho” e “Monitoramento de Alterações de Estado de Saída do Trabalho”.

Você pode registrar-se para todos os eventos assinando o evento JobStateChange. Ou então, você pode assinar somente eventos específicos (por exemplo, estados finais como JobErrored, JobFinished e JobCanceled).

Monitoramento de alterações de estado de trabalho

Tipo de evento Descrição
Microsoft.Media.JobStateChange Obtenha um evento para todas as alterações de estado do trabalho.
Microsoft.Media.JobScheduled Obtenha um evento quando o trabalho faz a transição para o estado agendado.
Microsoft.Media.JobProcessing Obtenha um evento quando o trabalho faz a transição para o estado em processamento.
Microsoft.Media.JobCanceling Obtenha um evento quando o trabalho faz a transição para o estado em cancelamento.
Microsoft.Media.JobFinished Obtenha um evento quando o trabalho faz a transição para um estado concluído. Este é um estado final que inclui as saídas do trabalho.
Microsoft.Media.JobCanceled Obtenha um evento quando o trabalho faz a transição para um estado cancelado. Este é um estado final que inclui as saídas do trabalho.
Microsoft.Media.JobErrored Obtenha um evento quando o trabalho faz a transição para um estado de erro. Este é um estado final que inclui as saídas do trabalho.

Veja os exemplos de esquema a seguir.

Monitorar alterações de estado de saída do trabalho

Um trabalho pode conter várias saídas do trabalho (se você tiver configurado a transformação para ter várias saídas do trabalho). Se você quiser acompanhar os detalhes da saída do trabalho individual, ouça um evento de alteração de saída do trabalho.

Cada Trabalho será em um nível mais alto do que JobOutput, assim os eventos de saída de trabalho serão acionados dentro de um trabalho correspondente.

As mensagens de erro em JobFinished, JobCanceled, JobError geram os resultados agregados para cada saída do trabalho quando todos são concluídos. Já os eventos de saída do trabalho são acionados conforme cada tarefa é concluída. Por exemplo, se você tiver uma saída de codificação, seguida por uma saída de análise de vídeo, obterá dois eventos acionados como eventos de saída do trabalho antes de o evento JobFinished final ser acionado com os dados agregados.

Tipo de evento Descrição
Microsoft.Media.JobOutputStateChange Obtenha um evento para todas as alterações de estado da saída do trabalho.
Microsoft.Media.JobOutputScheduled Obtenha um evento quando a saída do trabalho faz a transição para o estado agendado.
Microsoft.Media.JobOutputProcessing Obtenha um evento quando a saída do trabalho faz a transição para o estado em processamento.
Microsoft.Media.JobOutputCanceling Obtenha um evento quando a saída do trabalho faz a transição para o estado em cancelamento.
Microsoft.Media.JobOutputFinished Obtenha um evento quando a saída do trabalho faz a transição para o estado concluído.
Microsoft.Media.JobOutputCanceled Obtenha um evento quando a saída do trabalho faz a transição para o estado cancelado.
Microsoft.Media.JobOutputErrored Obtenha um evento quando a saída do trabalho faz a transição para o estado de erro.

Veja os exemplos de esquema a seguir.

Monitorar o progresso da saída do trabalho

Tipo de evento Descrição
Microsoft.Media.JobOutputProgress Esse evento reflete o progresso do processamento do trabalho, de 0% a 100%. O serviço tenta enviar um evento se houver um amento de 5% ou mais no valor do progresso ou se tiverem passado mais de 30 segundos desde o último evento (pulsação). Não é garantido que o valor do progresso comece em 0% ou alcance 100% nem que aumente a uma taxa constante com o passar do tempo. Esse evento não deve ser usado para determinar se o processamento foi concluído. Para isso, você deve usar os eventos de alteração de estado.

Veja os exemplos de esquema a seguir.

Tipos de evento ao vivo

Os Serviços de Mídia também emitem os tipos de eventos Ao vivo descritos abaixo. Há duas categorias para os eventos Ao Vivo: eventos em nível de fluxo e eventos de nível de faixa.

Eventos em nível de fluxo

Os eventos em nível de fluxo são acionados por conexão ou fluxo. Cada evento tem um parâmetro StreamId que identifica a conexão ou o fluxo. Cada conexão ou fluxo tem uma ou mais faixas de tipos diferentes. Por exemplo, uma conexão de um codificador pode ter uma faixa de áudio e quatro faixas de vídeo. Os tipos de evento de fluxo são:

Tipo de evento Descrição
Microsoft.Media.LiveEventConnectionRejected A tentativa de conexão do codificador foi rejeitada.
Microsoft.Media.LiveEventEncoderConnected O codificador estabelece conexão com o evento ao vivo.
Microsoft.Media.LiveEventEncoderDisconnected O codificador desconecta.

Veja os exemplos de esquema a seguir.

Eventos no nível de rastreamento

Os eventos em nível de faixa são acionados por faixa.

Observação

Todos os eventos de nível de faixa são gerados depois que um codificador dinâmico é conectado.

Os tipos de evento de nível de faixa são:

Tipo de evento Descrição
Microsoft.Media.LiveEventIncomingDataChunkDropped O servidor de mídia descarta parte dos dados porque o tempo limite deles foi atingido ou eles têm um carimbo de data/hora de sobreposição (o carimbo de data/hora da nova parte de dados é anterior à hora de término da parte de dados anterior).
Microsoft.Media.LiveEventIncomingStreamReceived O servidor de mídia recebe a primeira parte de dados para cada faixa no fluxo ou na conexão.
Microsoft.Media.LiveEventIncomingStreamsOutOfSync O servidor de mídia detecta que os fluxos de áudio e vídeo estão fora de sincronia. Use como um aviso, pois a experiência do usuário pode não ser afetada.
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync O servidor de mídia detecta que um dos fluxos de vídeo proveniente do codificador externo está fora de sincronia. Use como um aviso, pois a experiência do usuário pode não ser afetada.
Microsoft.Media.LiveEventIngestHeartbeat Publicado a cada 20 segundos para cada faixa quando o evento ao vivo está em execução. Fornece resumo de integridade de ingestão.

Depois que o codificador for inicialmente conectado, o evento de pulsação continuará a emitir a cada 20 segundos, independentemente de o codificador ainda estar conectado ou não.
Microsoft.Media.LiveEventTrackDiscontinuityDetected O servidor de mídia detecta descontinuidade na faixa de entrada.

Veja os exemplos de esquema a seguir.

Exemplos de esquema de evento

JobStateChange

O exemplo a seguir mostra o esquema do evento JobStateChange:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
    "type": "Microsoft.Media.JobStateChange",
    "time": "2018-04-20T21:26:13.8978772",
    "id": "b9d38923-9210-4c2b-958f-0054467d4dd7",
    "data": {
      "previousState": "Processing",
      "state": "Finished"
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
previousState string O estado do trabalho antes do evento.
state string O novo estado do trabalho que está sendo notificado nesse evento. Por exemplo, "Agendado: o trabalho está pronto para iniciar" ou "Concluído: o trabalho foi concluído".

Quando o estado do Trabalho puder ser um deste valores: Na fila, Agendado, Processando, Concluído, Erro, Cancelado, Cancelando

Observação

Em fila estará presente somente na propriedade previousState, mas não na propriedade state.

JobScheduled, JobProcessing, JobCanceling

Para cada alteração de estado do Trabalho não final (como JobScheduled, JobProcessing e JobCanceling), o esquema de exemplo é semelhante ao seguinte:

[{
  "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
  "subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
  "type": "Microsoft.Media.JobProcessing",
  "time": "2018-10-12T16:12:18.0839935",
  "id": "a0a6efc8-f647-4fc2-be73-861fa25ba2db",
  "data": {
    "previousState": "Scheduled",
    "state": "Processing",
    "correlationData": {
      "testKey1": "testValue1",
      "testKey2": "testValue2"
    }
  },
  "specversion": "1.0"
}]

JobFinished, JobCanceled, JobErrored

Para cada alteração de estado do Trabalho final (como JobFinished, JobCanceled e JobErrored), o esquema de exemplo é semelhante ao seguinte:

[{
  "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
  "subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
  "type": "Microsoft.Media.JobFinished",
  "time": "2018-10-12T16:25:56.4115495",
  "id": "9e07e83a-dd6e-466b-a62f-27521b216f2a",
  "data": {
    "outputs": [
      {
        "@odata.type": "#Microsoft.Media.JobOutputAsset",
        "assetName": "output-7640689F",
        "error": null,
        "label": "VideoAnalyzerPreset_0",
        "progress": 100,
        "state": "Finished"
      }
    ],
    "previousState": "Processing",
    "state": "Finished",
    "correlationData": {
      "testKey1": "testValue1",
      "testKey2": "testValue2"
    }
  },
  "specversion": "1.0"
}]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
outputs Array Obtém as saídas do trabalho.

JobOutputStateChange

O exemplo a seguir mostra o esquema do evento JobOutputStateChange:

[{
  "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
  "subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
  "eventType": "Microsoft.Media.JobOutputStateChange",
  "eventTime": "2018-10-12T16:25:56.0242854",
  "id": "dde85f46-b459-4775-b5c7-befe8e32cf90",
  "data": {
    "previousState": "Processing",
    "output": {
      "@odata.type": "#Microsoft.Media.JobOutputAsset",
      "assetName": "output-7640689F",
      "error": null,
      "label": "VideoAnalyzerPreset_0",
      "progress": 100,
      "state": "Finished"
    },
    "jobCorrelationData": {
      "testKey1": "testValue1",
      "testKey2": "testValue2"
    }
  },
  "dataVersion": "1.0",
  "metadataVersion": "1"
}]

JobOutputScheduled, JobOutputProcessing, JobOutputFinished, JobOutputCanceling, JobOutputCanceled, JobOutputErrored

Para cada alteração de estado de JobOutput, o esquema de exemplo é semelhante ao seguinte:

[{
  "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
  "subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
  "eventType": "Microsoft.Media.JobOutputProcessing",
  "eventTime": "2018-10-12T16:12:18.0061141",
  "id": "f1fd5338-1b6c-4e31-83c9-cd7c88d2aedb",
  "data": {
    "previousState": "Scheduled",
    "output": {
      "@odata.type": "#Microsoft.Media.JobOutputAsset",
      "assetName": "output-7640689F",
      "error": null,
      "label": "VideoAnalyzerPreset_0",
      "progress": 0,
      "state": "Processing"
    },
    "jobCorrelationData": {
      "testKey1": "testValue1",
      "testKey2": "testValue2"
    }
  },
  "dataVersion": "1.0",
  "metadataVersion": "1"
}]

JobOutputProgress

O exemplo de esquema é semelhante ao descrito a seguir:

[{
  "topic": "/subscriptions/<subscription-id>/resourceGroups/belohGroup/providers/Microsoft.Media/mediaservices/<account-name>",
  "subject": "transforms/VideoAnalyzerTransform/jobs/job-5AB6DE32",
  "eventType": "Microsoft.Media.JobOutputProgress",
  "eventTime": "2018-12-10T18:20:12.1514867",
  "id": "00000000-0000-0000-0000-000000000000",
  "data": {
    "jobCorrelationData": {
      "TestKey1": "TestValue1",
      "testKey2": "testValue2"
    },
    "label": "VideoAnalyzerPreset_0",
    "progress": 86
  },
  "dataVersion": "1.0",
  "metadataVersion": "1"
}]

LiveEventConnectionRejected

O exemplo a seguir mostra o esquema do evento LiveEventConnectionRejected:

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
    "subject": "/LiveEvents/MyLiveEvent1",
    "eventType": "Microsoft.Media.LiveEventConnectionRejected",
    "eventTime": "2018-01-16T01:57:26.005121Z",
    "id": "b303db59-d5c1-47eb-927a-3650875fded1",
    "data": {
      "streamId":"Mystream1",
      "ingestUrl": "http://abc.ingest.isml",
      "encoderIp": "118.238.251.xxx",
      "encoderPort": 52859,
      "resultCode": "MPE_INGEST_CODEC_NOT_SUPPORTED"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
streamId string Identificador do fluxo ou da conexão. O codificador ou o cliente é responsável por adicionar essa ID na URL de ingestão.
ingestUrl string URL de ingestão fornecida pelo evento ao vivo.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde vem esse fluxo.
resultCode string O motivo pelo qual a conexão foi rejeitada. Os códigos de resultado estão listadas na tabela a seguir.

Você pode encontrar os códigos de resultado de erro em Códigos de erro de eventos ao vivo.

LiveEventEncoderConnected

O exemplo a seguir mostra o esquema do evento LiveEventEncoderConnected:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "type": "Microsoft.Media.LiveEventEncoderConnected",
    "time": "2018-08-07T23:08:09.1710643",
    "id": "<id>",
    "data": {
      "ingestUrl": "http://mle1-amsts03mediaacctgndos-ts031.channel.media.azure-test.net:80/ingest.isml",
      "streamId": "15864-stream0",
      "encoderIp": "131.107.147.xxx",
      "encoderPort": "27485"
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
streamId string Identificador do fluxo ou da conexão. O codificador ou o cliente é responsável por fornecer essa ID na URL de ingestão.
ingestUrl string URL de ingestão fornecida pelo evento ao vivo.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde vem esse fluxo.

LiveEventEncoderDisconnected

O exemplo a seguir mostra o esquema do evento LiveEventEncoderDisconnected:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "type": "Microsoft.Media.LiveEventEncoderDisconnected",
    "time": "2018-08-07T23:08:09.1710872",
    "id": "<id>",
    "data": {
      "ingestUrl": "http://mle1-amsts03mediaacctgndos-ts031.channel.media.azure-test.net:80/ingest.isml",
      "streamId": "15864-stream0",
      "encoderIp": "131.107.147.xxx",
      "encoderPort": "27485",
      "resultCode": "S_OK"
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
streamId string Identificador do fluxo ou da conexão. O codificador ou o cliente é responsável por adicionar essa ID na URL de ingestão.
ingestUrl string URL de ingestão fornecida pelo evento ao vivo.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde vem esse fluxo.
resultCode string O motivo para a desconexão do codificador. Isso se deve à desconexão normal ou a um erro. Os códigos de resultado estão listadas na tabela a seguir.

Você pode encontrar os códigos de resultado de erro em Códigos de erro de eventos ao vivo.

Os códigos de resultado de desconexão normal são:

Código de Resultado Descrição
S_OK Codificador desconectado com êxito.
MPE_CLIENT_TERMINATED_SESSION Codificador desconectado (RTMP).
MPE_CLIENT_DISCONNECTED Codificador desconectado (FMP4).
MPI_REST_API_CHANNEL_RESET O comando de redefinição de canal é recebido.
MPI_REST_API_CHANNEL_STOP Comando de parada de canal recebido.
MPI_REST_API_CHANNEL_STOP Canal passando por manutenção.
MPI_STREAM_HIT_EOF O fluxo de EOF é enviado pelo codificador.

LiveEventIncomingDataChunkDropped

O exemplo a seguir mostra o esquema do evento LiveEventIncomingDataChunkDropped:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
    "subject": "/LiveEvents/MyLiveEvent1",
    "type": "Microsoft.Media.LiveEventIncomingDataChunkDropped",
    "time": "2018-01-16T01:57:26.005121Z",
    "id": "03da9c10-fde7-48e1-80d8-49936f2c3e7d",
    "data": {
      "trackType": "Video",
      "trackName": "Video",
      "bitrate": 300000,
      "timestamp": 36656620000,
      "timescale": 10000000,
      "resultCode": "FragmentDrop_OverlapTimestamp"
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
trackType string Tipo de faixa (Áudio/Vídeo).
trackName string Nome da faixa.
bitrate Número inteiro Taxa de bits da faixa.
timestamp string O carimbo de data/hora da parte de dados é descartado.
timescale string Escala de tempo do carimbo de data/hora.
resultCode string Motivo do descarte da parte de dados. FragmentDrop_OverlapTimestamp ou FragmentDrop_NonIncreasingTimestamp.

LiveEventIncomingStreamReceived

O exemplo a seguir mostra o esquema do evento LiveEventIncomingStreamReceived:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "type": "Microsoft.Media.LiveEventIncomingStreamReceived",
    "time": "2018-08-07T23:08:10.5069288Z",
    "id": "7f939a08-320c-47e7-8250-43dcfc04ab4d",
    "data": {
      "ingestUrl": "http://mle1-amsts03mediaacctgndos-ts031.channel.media.azure-test.net:80/ingest.isml/Streams(15864-stream0)15864-stream0",
      "trackType": "video",
      "trackName": "video",
      "bitrate": 2962000,
      "encoderIp": "131.107.147.xxx",
      "encoderPort": "27485",
      "timestamp": "15336831655032322",
      "duration": "20000000",
      "timescale": "10000000"
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
trackType string Tipo de faixa (Áudio/Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso de RTMP, o servidor gera no formato TrackType_Bitrate).
bitrate Número inteiro Taxa de bits da faixa.
ingestUrl string URL de ingestão fornecida pelo evento ao vivo.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde vem esse fluxo.
timestamp string O primeiro carimbo de data/hora da parte de dados recebida.
timescale string Escala de tempo em que o carimbo de data/hora é representado.

LiveEventIncomingStreamsOutOfSync

O exemplo a seguir mostra o esquema do evento LiveEventIncomingStreamsOutOfSync:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "type": "Microsoft.Media.LiveEventIncomingStreamsOutOfSync",
    "time": "2018-08-10T02:26:20.6269183Z",
    "id": "b9d38923-9210-4c2b-958f-0054467d4dd7",
    "data": {
      "minLastTimestamp": "319996",
      "typeOfStreamWithMinLastTimestamp": "Audio",
      "maxLastTimestamp": "366000",
      "typeOfStreamWithMaxLastTimestamp": "Video",
      "timescaleOfMinLastTimestamp": "10000000",
      "timescaleOfMaxLastTimestamp": "10000000"
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
minLastTimestamp string Mínimo dos últimos carimbos de data/hora entre todas as faixas (áudio ou vídeo).
typeOfTrackWithMinLastTimestamp string Tipo de faixa (áudio ou vídeo) com o último carimbo de data/hora mínimo.
maxLastTimestamp string Máximo de todos os carimbos de data/hora entre todas as faixas (áudio ou vídeo).
typeOfTrackWithMaxLastTimestamp string Tipo de faixa (áudio ou vídeo) com o último carimbo de data/hora máximo.
timescaleOfMinLastTimestamp string Obtém a escala de tempo em que o “MinLastTimestamp” é representado.
timescaleOfMaxLastTimestamp string Obtém a escala de tempo em que o “MaxLastTimestamp” é representado.

LiveEventIncomingVideoStreamsOutOfSync

O exemplo a seguir mostra o esquema do evento LiveEventIncomingVideoStreamsOutOfSync:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
    "subject": "/LiveEvents/LiveEvent1",
    "type": "Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync",
    "time": "2018-01-16T01:57:26.005121Z",
    "id": "6dd4d862-d442-40a0-b9f3-fc14bcf6d750",
    "data": {
      "firstTimestamp": "2162058216",
      "firstDuration": "2000",
      "secondTimestamp": "2162057216",
      "secondDuration": "2000",
      "timescale": "10000000"
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
firstTimestamp string O carimbo de data/hora recebido para uma das faixas/níveis de qualidade do vídeo de tipo.
firstDuration string Duração da parte de dados com primeiro carimbo de data/hora.
secondTimestamp string O carimbo de data/hora recebido para algum outro nível de qualidade/faixa do vídeo de tipo.
secondDuration string Duração da parte de dados com segundo carimbo de data/hora.
timescale string Escala de tempo de carimbos de data/hora e duração.

LiveEventIngestHeartbeat

O exemplo a seguir mostra o esquema do evento LiveEventIngestHeartbeat:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "type": "Microsoft.Media.LiveEventIngestHeartbeat",
    "time": "2018-08-07T23:17:57.4610506",
    "id": "7f450938-491f-41e1-b06f-c6cd3965d786",
    "data": {
      "trackType": "audio",
      "trackName": "audio",
      "bitrate": 160000,
      "incomingBitrate": 155903,
      "lastTimestamp": "15336837535253637",
      "timescale": "10000000",
      "overlapCount": 0,
      "discontinuityCount": 0,
      "nonincreasingCount": 0,
      "unexpectedBitrate": false,
      "state": "Running",
      "healthy": true
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
trackType string Tipo de faixa (Áudio/Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso de RTMP, o servidor gera no formato TrackType_Bitrate).
bitrate Número inteiro Taxa de bits da faixa.
incomingBitrate Número inteiro Taxa de bits calculada com base nas partes de dados provenientes do codificador.
lastTimestamp string Carimbo de data/hora mais recente recebido para uma faixa nos últimos 20 segundos.
timescale string Escala de tempo na qual os carimbos de data/hora são expressos.
overlapCount Número inteiro O número de partes de dados que sobrepôs os carimbos de data/hora nos últimos 20 segundos.
discontinuityCount Número inteiro Número do descontinuidades observadas nos últimos 20 segundos.
nonIncreasingCount Número inteiro Número de partes de dados com os carimbos de data/hora no passado recebidas nos últimos 20 segundos.
unexpectedBitrate bool Se as taxas de bits esperadas e reais apresentarem diferença superior ao limite permitido nos últimos 20 segundos. É true se e somente se, incomingBitrate >= 2* taxa de bits OU incomingBitrate <= taxa de bits/2 OU IncomingBitrate = 0.
state string Estado do evento ao vivo.
healthy bool Indica se a ingestão está íntegra com base nas contagens e nos sinalizadores. Healthy será true se OverlapCount = 0 && DiscontinuityCount = 0 && NonIncreasingCount = 0 && UnexpectedBitrate = false.
lastFragmentArrivalTime string O último carimbo de data/hora em UTC de que um fragmento chegou ao ponto de extremidade de ingestão. O formato de data de exemplo é "11-11-2020 12:12:12:888999"
ingestDriftValue string Indica a velocidade do atraso, em segundos por minuto, dos dados de áudio ou vídeo de entrada durante o último minuto. O valor será maior do que zero se os dados chegarem ao evento ao vivo mais lentos do que o esperado no último minuto; zero se os dados chegaram sem atraso; e "n/a" se nenhum dado de áudio ou vídeo foi recebido. Por exemplo, se você tiver um codificador de contribuição enviando conteúdo ao vivo e ele estiver ficando lento devido a problemas de processamento ou latência de rede, ele poderá ser capaz de entregar um total de 58 segundos de áudio ou vídeo em um período de um minuto. Isso seria relatado como descompasso de 2 segundos por minuto. Se o codificador conseguir acompanhar a contagem e enviar os 60 segundos ou mais de dados por minuto, esse valor será relatado como 0. Se houver uma desconexão ou descontinuidade do codificador, esse valor ainda poderá ser exibido como 0, pois não levará em conta as interrupções nos dados, mas somente os dados atrasados em carimbos de data/hora.
transcriptionState string Esse valor será "On" para pulsações de faixa de áudio se a transcrição dinâmica estiver ativada, caso contrário, você verá uma cadeia de caracteres vazia. Esse estado só é aplicável ao tracktypede audio para transcrição dinâmica. Todas as outras faixas terão um valor vazio.
transcriptionLanguage string O código de idioma (no formato BCP-47) da linguagem de transcrição. Por exemplo, "de-de" indica alemão (Alemanha). O valor está vazio para as pulsações de faixa de vídeo ou quando a transcrição dinâmica está desativada.

LiveEventTrackDiscontinuityDetected

O exemplo a seguir mostra o esquema do evento LiveEventTrackDiscontinuityDetected:

[
  {
    "source": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "type": "Microsoft.Media.LiveEventTrackDiscontinuityDetected",
    "time": "2018-08-07T23:18:06.1270405Z",
    "id": "5f4c510d-5be7-4bef-baf0-64b828be9c9b",
    "data": {
      "trackName": "video",
      "previousTimestamp": "15336837615032322",
      "trackType": "video",
      "bitrate": 2962000,
      "newTimestamp": "15336837619774273",
      "discontinuityGap": "575284",
      "timescale": "10000000"
    },
    "specversion": "1.0"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Type Descrição
trackType string Tipo de faixa (Áudio/Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso de RTMP, o servidor gera no formato TrackType_Bitrate).
bitrate Número inteiro Taxa de bits da faixa.
previousTimestamp string Carimbo de data/hora do fragmento anterior.
newTimestamp string Carimbo de data/hora do fragmento atual.
discontinuityGap string Lacuna entre os dois carimbos de data/hora acima.
timescale string Escala de tempo na qual o carimbo de data/hora e a lacuna de descontinuidade são representados.

Propriedades comuns de evento

Um evento tem os seguintes dados de nível superior:

Propriedade Type Descrição
source string O tópico da Grade de Eventos. Essa propriedade tem a ID de recurso para a conta de Serviços de Mídia.
subject string O caminho do recurso para o canal dos Serviços de Mídia sob a conta de Serviços de Mídia. A concatenação de tópico e assunto dê a você o recurso de ID para o trabalho.
type string Um dos tipos de evento registrados para a origem do evento. Por exemplo, "Microsoft.Media.JobStateChange".
time string A hora em que o evento é gerado com base na hora UTC do provedor.
id string Identificador exclusivo do evento.
data objeto Dados de eventos dos Serviços de Mídia.
specversion string Versão de especificação do esquema CloudEvents.

Próximas etapas

Confira Registrar-se para eventos de alteração de estado do trabalho

Confira também