Partilhar via


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

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

Os Serviços de Mídia emitem os tipos de eventos relacionados ao trabalho descritos abaixo. Há duas categorias para os eventos relacionados ao trabalho: "Monitorando alterações no estado do trabalho" e "Monitorando alterações no estado de saída do trabalho".

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

Monitorando alterações no estado do trabalho

Tipo de evento Description
Microsoft.Media.JobStateChange Obtenha um evento para todas as alterações de Estado do Trabalho.
Microsoft.Media.JobScheduled Obtenha um evento quando Job transitar para o estado agendado.
Microsoft.Media.JobProcessing Obtenha um evento quando Job transitar para o estado de processamento.
Microsoft.Media.JobCanceling Obtenha um evento quando Job transitar para o estado de cancelamento.
Microsoft.Media.JobFinished Obtenha um evento quando o trabalho transitar para o estado concluído. Este é um estado final que inclui saídas de trabalho.
Microsoft.Media.JobCanceled Obtenha um evento quando o trabalho transitar para o estado cancelado. Este é um estado final que inclui saídas de trabalho.
Microsoft.Media.JobErrored Obtenha um evento quando Job transitar para o estado de erro. Este é um estado final que inclui saídas de trabalho.

Consulte Exemplos de esquema a seguir.

Monitorando alterações no estado de saída do trabalho

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

Cada Job estará em um nível mais alto do que o JobOutput, portanto, os eventos de saída de trabalho serão disparados dentro de um trabalho correspondente.

As mensagens de erro em JobFinished, JobCanceled, JobError produzem os resultados agregados para cada saída de trabalho – quando todas elas estiverem concluídas. Enquanto os eventos de saída de trabalho são acionados à medida que cada tarefa é concluída. Por exemplo, se você tiver uma saída de codificação, seguida por uma saída do Video Analytics, você obterá dois eventos disparando como eventos de saída de trabalho antes que o evento JobFinished final seja acionado com os dados agregados.

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

Consulte Exemplos de esquema a seguir.

Monitorando o progresso dos resultados do trabalho

Tipo de evento Description
Microsoft.Media.JobOutputProgress Este evento reflete o progresso do processamento do trabalho, de 0% a 100%. O serviço tenta enviar um evento se houve um aumento de 5% ou mais no valor de progresso ou se tiver passado mais de 30 segundos desde o último evento (pulsação). Não é garantido que o valor do progresso comece em 0% ou atinja 100%, nem que aumente a uma taxa constante ao longo do tempo. Esse evento não deve ser usado para determinar se o processamento foi concluído – você deve, em vez disso, usar os eventos de alteração de estado.

Consulte Exemplos de esquema a seguir.

Tipos de eventos 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 de nível de transmissão e eventos de nível de pista.

Eventos em nível de fluxo

Os eventos no nível do fluxo são gerados por fluxo ou conexão. Cada evento tem um StreamId parâmetro que identifica a conexão ou fluxo. Cada fluxo ou conexão tem uma ou mais faixas de diferentes tipos. 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 Description
Microsoft.Media.LiveEventConnectionRejected A tentativa de conexão do codificador é rejeitada.
Microsoft.Media.LiveEventEncoderConnected O codificador estabelece conexão com o evento ao vivo.
Microsoft.Media.LiveEventEncoderDisconnected O codificador se desconecta.

Consulte Exemplos de esquema a seguir.

Eventos ao nível da pista

Os eventos de nível de pista são aumentados por faixa.

Nota

Todos os eventos no nível da pista são gerados depois que um codificador ao vivo é conectado.

Os tipos de eventos de nível de pista são:

Tipo de evento Description
Microsoft.Media.LiveEventIncomingDataChunkDropped O servidor de mídia descarta o bloco de dados porque é tarde demais ou tem um carimbo de data/hora sobreposto (o carimbo de data/hora do novo bloco de dados é menor do que a hora de término do bloco de dados anterior).
Microsoft.Media.LiveEventIncomingStreamReceived O servidor de mídia recebe o primeiro bloco de dados para cada faixa no fluxo ou conexão.
Microsoft.Media.LiveEventIncomingStreamsOutOfSync Servidor de mídia deteta fluxos de áudio e vídeo estão fora de sincronia. Use como um aviso porque a experiência do usuário pode não ser afetada.
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync Servidor de mídia deteta qualquer um dos dois fluxos de vídeo provenientes do codificador externo estão fora de sincronia. Use como um aviso porque 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 um resumo da saúde da ingestão.

Depois que o codificador foi inicialmente conectado, o evento de pulsação continua a emitir a cada 20 segundos, quer o codificador ainda esteja conectado ou não.
Microsoft.Media.LiveEventTrackDiscontinuityDetected Servidor de mídia deteta descontinuidade na faixa de entrada.

Consulte Exemplos de esquema a seguir.

Exemplos de esquema de eventos

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 Description
previousState string O estado do trabalho antes do evento.
state string O novo estado do trabalho que está sendo notificado neste evento. Por exemplo, "Agendado: O trabalho está pronto para começar" ou "Concluído: O trabalho foi concluído".

Onde o estado do trabalho pode ser um dos valores: Enfileirado, Agendado, Processando, Concluído, Erro, Cancelado, Cancelando

Nota

A fila só estará presente na propriedade anteriorState, mas não na propriedade estatal.

JobScheduled, JobProcessing, JobCanceling

Para cada alteração de estado de trabalho não final (como JobScheduled, JobProcessing, 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 final do estado do trabalho (como JobFinished, JobCanceled, 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 Description
outputs Matriz Obtém as saídas de 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 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 esquema de exemplo é semelhante ao seguinte:

[{
  "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 LiveEventConnectionRejected evento:

[
  {
    "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 Description
streamId string Identificador do fluxo ou conexão. O codificador ou cliente é responsável por adicionar este ID no URL de ingestão.
ingestUrl string Ingerir URL fornecido pelo evento ao vivo.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde esse fluxo está vindo.
resultCode string A razão pela qual a conexão foi rejeitada. Os códigos de resultado estão listados na tabela a seguir.

Você pode encontrar os códigos de resultado de erro em códigos de erro de evento 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 Description
streamId string Identificador do fluxo ou conexão. O codificador ou cliente é responsável por fornecer este ID no URL de ingestão.
ingestUrl string Ingerir URL fornecido pelo evento ao vivo.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde esse fluxo está vindo.

LiveEventEncoderDesconectado

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 Description
streamId string Identificador do fluxo ou conexão. O codificador ou cliente é responsável por adicionar este ID no URL de ingestão.
ingestUrl string Ingerir URL fornecido pelo evento ao vivo.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde esse fluxo está vindo.
resultCode string O motivo da desconexão do codificador. Pode ser uma desconexão graciosa ou um erro. Os códigos de resultado estão listados na tabela a seguir.

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

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

Código de resultado Description
S_OK Codificador desconectado com êxito.
MPE_CLIENT_TERMINATED_SESSION Codificador desconectado (RTMP).
MPE_CLIENT_DISCONNECTED Codificador desligado (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 em manutenção.
MPI_STREAM_HIT_EOF O fluxo EOF é enviado pelo codificador.

LiveEventIncomingDataChunkDropped

O exemplo a seguir mostra o esquema do LiveEventIncomingDataChunkDropped evento:

[
  {
    "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 Description
trackType string Tipo de faixa (Áudio / Vídeo).
trackName string Nome da faixa.
bitrate integer Bitrate da pista.
timestamp string O carimbo de data/hora do bloco de dados foi descartado.
timescale string Escala de tempo do carimbo de data/hora.
resultCode string Motivo da queda do bloco 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 Description
trackType string Tipo de faixa (Áudio / Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso de RTMP, o servidor gera em formato TrackType_Bitrate ).
bitrate integer Bitrate da pista.
ingestUrl string Ingerir URL fornecido pelo evento ao vivo.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde esse fluxo está vindo.
timestamp string Primeiro carimbo de data/hora do bloco de dados recebido.
timescale string Escala de tempo na qual 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 Description
minLastTimestamp string Mínimo de ú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 na qual "MinLastTimestamp" é representado.
timescaleOfMaxLastTimestamp string Obtém a escala de tempo na qual "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 Description
firstTimestamp string Carimbo de data/hora recebido para uma das faixas/níveis de qualidade do tipo vídeo.
firstDuration string Duração do bloco de dados com o primeiro carimbo de data/hora.
secondTimestamp string Carimbo de data/hora recebido para alguma outra faixa/nível de qualidade do tipo vídeo.
secondDuration string Duração do bloco 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 Description
trackType string Tipo de faixa (Áudio / Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso de RTMP, o servidor gera em formato TrackType_Bitrate ).
bitrate integer Bitrate da pista.
incomingBitrate integer Taxa de bits calculada com base em blocos de dados provenientes do codificador.
lastTimestamp string Último carimbo de data/hora recebido para uma faixa nos últimos 20 segundos.
timescale string Escala de tempo em que os carimbos de data/hora são expressos.
overlapCount integer O número de blocos de dados tinha carimbos de data/hora sobrepostos nos últimos 20 segundos.
discontinuityCount integer Número de descontinuidades observadas nos últimos 20 segundos.
nonIncreasingCount integer Número de blocos de dados com carimbos de data/hora no passado foram recebidos nos últimos 20 segundos.
unexpectedBitrate booleano Se esperado e real bitrates diferem em mais do que o permitido limite nos últimos 20 segundos. É verdade se e somente se, incomingBitrate >= 2* bitrate OU incomingBitrate <= bitrate/2 OU IncomingBitrate = 0.
state string Estado do evento ao vivo.
healthy booleano Indica se a ingestão é saudável, com base nas contagens e bandeiras. Saudável é verdadeiro se overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false.
lastFragmentArrivalTime string O último carimbo de data/hora em UTC que um fragmento chegou ao ponto de extremidade de ingestão. Exemplo de formato de data é "2020-11-11 12:12:12:888999"
ingestDriftValue string Indica a velocidade de atraso, em segundos por minuto, dos dados de áudio ou vídeo recebidos durante o último minuto. O valor é maior que zero se os dados estiverem chegando ao evento ao vivo mais lentamente do que o esperado no último minuto; zero se os dados chegaram sem demora; e "n/a" se não tiverem sido recebidos dados de áudio ou vídeo. 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 só poderá fornecer um total de 58 segundos de áudio ou vídeo em um período de um minuto. Isso seria relatado como 2 segundos por minuto de deriva. Se o codificador for capaz de recuperar o atraso e enviar todos os 60 segundos ou mais de dados a cada minuto, você verá esse valor relatado como 0. Se houve uma desconexão ou descontinuidade do codificador, esse valor ainda pode ser exibido como 0, pois não contabiliza quebras nos dados - apenas dados atrasados em carimbos de data/hora.
transcriptionState string Esse valor é "Ativado" para pulsações de faixas de áudio se a transcrição ao vivo estiver ativada, caso contrário, você verá uma cadeia de caracteres vazia. Este estado só é aplicável àtracktype transcrição ao audio vivo. Todas as outras faixas terão um valor vazio.
transcriptionLanguage string O código linguístico (em formato BCP-47) da língua de transcrição. Por exemplo, "de-de" indica alemão (Alemanha). O valor está vazio para as pulsações da faixa de vídeo ou quando a transcrição ao vivo 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 Description
trackType string Tipo de faixa (Áudio / Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso de RTMP, o servidor gera em formato TrackType_Bitrate ).
bitrate integer Bitrate da pista.
previousTimestamp string Carimbo de data/hora do fragmento anterior.
newTimestamp string Carimbo de data/hora do fragmento atual.
discontinuityGap string Intervalo 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 do evento

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

Propriedade Type Description
source string O tópico Grade de eventos. Esta propriedade tem a ID do recurso para a conta dos Serviços de Mídia.
subject string O caminho do recurso para o canal Serviços de Mídia na conta Serviços de Mídia. A concatenação do tópico e do assunto fornece a ID do recurso para o trabalho.
type string Um dos tipos de eventos registados para esta origem de 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 da especificação do esquema CloudEvents.

Próximos passos

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

Consulte também