Azure Event Grid esquemas para eventos dos Serviços de Multimédia

Logótipo dos Serviços de Multimédia v3


Aviso

Os Serviços de Multimédia do Azure serão descontinuados a 30 de junho de 2024. Para obter mais informações, consulte o Guia de Descontinuação do AMS.

Este artigo fornece os esquemas e propriedades dos eventos dos Serviços de Multimédia.

Para obter uma lista de scripts e tutoriais de exemplo, veja Origem de eventos dos Serviços de Multimédia.

Os Serviços de Multimédia emitem os tipos de eventos relacionados com a tarefa descritos abaixo. Existem duas categorias para os eventos relacionados com a tarefa : "Monitorização de Alterações do Estado da Tarefa" e "Monitorização das Alterações do Estado de Saída da Tarefa".

Pode registar-se em todos os eventos ao subscrever o evento JobStateChange. Em alternativa, pode subscrever apenas eventos específicos (por exemplo, estados finais como JobErrored, JobFinished e JobCanceled).

Monitorizar alterações ao estado da tarefa

Tipo de evento Descrição
Microsoft.Media.JobStateChange Obtenha um evento para todas as alterações ao Estado da Tarefa.
Microsoft.Media.JobScheduled Obtenha um evento quando a tarefa transitar para o estado agendado.
Microsoft.Media.JobProcessing Obtenha um evento quando a tarefa transitar para o estado de processamento.
Microsoft.Media.JobCanceling Obtenha um evento quando a tarefa transitar para o estado de cancelamento.
Microsoft.Media.JobFinished Obtenha um evento quando a tarefa transitar para o estado concluído. Este é um estado final que inclui saídas de tarefas.
Microsoft.Media.JobCanceled Obtenha um evento quando a tarefa transitar para o estado cancelado. Este é um estado final que inclui saídas de tarefas.
Microsoft.Media.JobErrored Obtenha um evento quando a tarefa transitar para o estado de erro. Este é um estado final que inclui saídas de tarefas.

Veja Exemplos de esquema que se seguem.

Monitorizar alterações ao estado de saída da tarefa

Uma tarefa pode conter várias saídas de tarefas (se tiver configurado a transformação para ter várias saídas de tarefas.) Se quiser controlar os detalhes da saída individual da tarefa, procure um evento de alteração de saída da tarefa.

Cada Tarefa terá um nível mais elevado do que JobOutput, pelo que os eventos de saída do trabalho são acionados dentro de uma tarefa correspondente.

As mensagens de erro em JobFinished, JobCanceled, JobError produzem os resultados agregados para cada saída da tarefa quando todas estiverem concluídas. Enquanto os eventos de saída da tarefa são acionados à medida que cada tarefa é concluída. Por exemplo, se tiver uma saída de codificação, seguida de uma saída do Video Analytics, obterá dois eventos a serem acionados como eventos de saída de tarefas antes de o evento Final JobFinished ser acionado com os dados agregados.

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

Veja Exemplos de esquema que se seguem.

Monitorizar o progresso da saída da tarefa

Tipo de evento Descrição
Microsoft.Media.JobOutputProgress Este evento reflete o progresso do processamento de tarefas, de 0% a 100%. O serviço tenta enviar um evento se tiver havido um aumento de 5% ou superior no valor de progresso ou se tiver passado mais de 30 segundos desde o último evento (heartbeat). O valor de progresso não é garantido para começar em 0%, ou para atingir 100%, nem é garantido que aumente a uma taxa constante ao longo do tempo. Não utilize este evento para determinar se o processamento foi concluído. Em vez disso, deve utilizar os eventos de alteração de estado.

Veja Exemplos de esquema que se seguem.

Tipos de eventos em direto

Os Serviços de Multimédia também emitem os tipos de eventos em direto descritos abaixo. Existem duas categorias para os eventos em direto : eventos ao nível do fluxo e eventos de nível de monitorização.

Eventos ao nível do fluxo

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

Tipo de evento Descrição
Microsoft.Media.LiveEventConnectionR ejectado A tentativa de ligação do codificador é rejeitada.
Microsoft.Media.LiveEventEncoderConnected O codificador estabelece ligação com o evento em direto.
Microsoft.Media.LiveEventEncoderDisconnected O codificador desliga-se.

Veja Exemplos de esquema que se seguem.

Eventos ao nível do registo

Os eventos ao nível da pista são gerados por faixa.

Nota

Todos os eventos ao nível da faixa são gerados após a ligação de um codificador em direto.

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

Tipo de evento Descrição
Microsoft.Media.LiveEventIncomingDataChunkDropped O servidor de multimédia remove o segmento de dados porque é demasiado tarde ou tem um carimbo de data/hora sobreposto (o carimbo de data/hora do novo segmento de dados é inferior à hora de fim do segmento de dados anterior).
Microsoft.Media.LiveEventIncomingStreamReceived O servidor de multimédia recebe o primeiro segmento de dados para cada faixa no fluxo ou ligação.
Microsoft.Media.LiveEventIncomingStreamsOutOfSync O servidor de multimédia deteta que as transmissões de áudio e vídeo estão dessincronizadas. Utilize como um aviso porque a experiência do utilizador pode não ser afetada.
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync O servidor de multimédia deteta que qualquer um dos dois fluxos de vídeo provenientes do codificador externo está dessincronizado. Utilize como um aviso porque a experiência do utilizador pode não ser afetada.
Microsoft.Media.LiveEventIngestHeartbeat Publicado a cada 20 segundos para cada faixa quando o evento em direto está em execução. Fornece resumo do estado de funcionamento da ingestão.

Depois de o codificador ter sido inicialmente ligado, o evento heartbeat continua a emitir a cada 20 segundos se o codificador ainda está ligado ou não.
Microsoft.Media.LiveEventTrackDiscontinuityDetected O servidor de multimédia deteta a descontinuidade na faixa de entrada.

Veja Exemplos de esquema que se seguem.

Exemplos de esquema de eventos

JobStateChange

O exemplo seguinte mostra o esquema do evento JobStateChange :

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

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
previousState cadeia (de carateres) O estado da tarefa antes do evento.
state string O novo estado da tarefa a ser notificada neste evento. Por exemplo, "Agendado: a tarefa está pronta para ser iniciada" ou "Concluída: A tarefa está concluída".

Onde o estado da tarefa pode ser um dos valores: Em fila, Agendado, Processamento, Concluído, Erro, Cancelado, Cancelamento

Nota

A fila só estará presente na propriedade previousState , mas não na propriedade state .

JobScheduled, JobProcessing, JobCanceling

Para cada alteração de estado de tarefa não final (como JobScheduled, JobProcessing, JobCanceling), o esquema de exemplo tem um aspeto 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.JobProcessing",
  "eventTime": "2018-10-12T16:12:18.0839935",
  "id": "a0a6efc8-f647-4fc2-be73-861fa25ba2db",
  "data": {
    "previousState": "Scheduled",
    "state": "Processing",
    "correlationData": {
      "testKey1": "testValue1",
      "testKey2": "testValue2"
    }
  },
  "dataVersion": "1.0",
  "metadataVersion": "1"
}]

JobFinished, JobCanceled, JobErrored

Para cada alteração final do estado da tarefa (como JobFinished, JobCanceled, JobErrored), o esquema de exemplo tem um aspeto 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.JobFinished",
  "eventTime": "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"
    }
  },
  "dataVersion": "1.0",
  "metadataVersion": "1"
}]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
outputs Matriz Obtém os resultados da Tarefa.

JobOutputStateChange

O exemplo seguinte 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 tem um aspeto 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 tem um aspeto 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"
}]

LiveEventConnectionR ejectado

O exemplo seguinte 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 Tipo Description
streamId cadeia (de carateres) Identificador do fluxo ou ligação. O codificador ou o cliente é responsável por adicionar este ID no URL de ingestão.
ingestUrl string UrL de ingestão fornecido pelo evento em direto.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde está a chegar este fluxo.
resultCode string A razão pela qual a ligação foi rejeitada. Os códigos de resultado estão listados na tabela seguinte.

Pode encontrar os códigos de resultado do erro em códigos de erro de Evento em direto.

LiveEventEncoderConnected

O exemplo seguinte mostra o esquema do evento LiveEventEncoderConnected :

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "eventType": "Microsoft.Media.LiveEventEncoderConnected",
    "eventTime": "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"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
streamId cadeia (de carateres) Identificador do fluxo ou ligação. O codificador ou o cliente é responsável por fornecer este ID no URL de ingestão.
ingestUrl string UrL de ingestão fornecido pelo evento em direto.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde está a chegar este fluxo.

LiveEventEncoderDisconnected

O exemplo seguinte mostra o esquema do evento LiveEventEncoderDisconnected :

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "eventType": "Microsoft.Media.LiveEventEncoderDisconnected",
    "eventTime": "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"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
streamId cadeia (de carateres) Identificador do fluxo ou ligação. O codificador ou o cliente é responsável por adicionar este ID no URL de ingestão.
ingestUrl string UrL de ingestão fornecido pelo evento em direto.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde está a chegar este fluxo.
resultCode string O motivo para a desativação do codificador. Pode ser uma desconexão correta ou de um erro. Os códigos de resultado estão listados na tabela seguinte.

Pode encontrar os códigos de resultado do erro em códigos de erro de Evento em direto.

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

Código do resultado Description
S_OK Codificador desligado com êxito.
MPE_CLIENT_TERMINATED_SESSION Codificador desligado (RTMP).
MPE_CLIENT_DISCONNECTED Codificador desligado (FMP4).
MPI_REST_API_CHANNEL_RESET O comando de reposição de canal é recebido.
MPI_REST_API_CHANNEL_STOP Comando de paragem 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 seguinte mostra o esquema do evento LiveEventIncomingDataChunkDropped :

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaServices/<account-name>",
    "subject": "/LiveEvents/MyLiveEvent1",
    "eventType": "Microsoft.Media.LiveEventIncomingDataChunkDropped",
    "eventTime": "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"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
trackType cadeia (de carateres) Tipo de faixa (Áudio/Vídeo).
trackName string Nome da faixa.
bitrate número inteiro Velocidade de transmissão da faixa.
timestamp string Carimbo de data/hora do segmento de dados removido.
timescale string Escala temporal do carimbo de data/hora.
resultCode string Motivo da queda do segmento de dados. FragmentDrop_OverlapTimestamp ou FragmentDrop_NonIncreasingTimestamp.

LiveEventIncomingStreamReceived

O exemplo seguinte mostra o esquema do evento LiveEventIncomingStreamReceived :

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "eventType": "Microsoft.Media.LiveEventIncomingStreamReceived",
    "eventTime": "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"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
trackType cadeia (de carateres) Tipo de faixa (Áudio/Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso do RTMP, o servidor é gerado no formato TrackType_Bitrate ).
bitrate número inteiro Velocidade de transmissão da faixa.
ingestUrl string UrL de ingestão fornecido pelo evento em direto.
encoderIp string IP do codificador.
encoderPort string Porta do codificador de onde está a chegar este fluxo.
timestamp string Primeiro carimbo de data/hora do segmento de dados recebido.
timescale string Escala temporal em que o carimbo de data/hora é representado.

LiveEventIncomingStreamsOutOfSync

O exemplo seguinte mostra o esquema do evento LiveEventIncomingStreamsOutOfSync :

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "eventType": "Microsoft.Media.LiveEventIncomingStreamsOutOfSync",
    "eventTime": "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"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
minLastTimestamp cadeia (de carateres) Mínimo de carimbos de data/hora entre todas as faixas (áudio ou vídeo).
typeOfTrackWithMinLastTimestamp string Tipo de faixa (áudio ou vídeo) com o 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 carimbo de data/hora máximo.
timescaleOfMinLastTimestamp string Obtém a escala temporal na qual "MinLastTimestamp" está representado.
timescaleOfMaxLastTimestamp string Obtém a escala temporal na qual "MaxLastTimestamp" está representado.

LiveEventIncomingVideoStreamsOutOfSync

O exemplo seguinte mostra o esquema do evento LiveEventIncomingVideoStreamsOutOfSync :

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

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
firstTimestamp cadeia (de carateres) Carimbo de data/hora recebido para uma das faixas/níveis de qualidade do tipo vídeo.
firstDuration string Duração do segmento de dados com o primeiro carimbo de data/hora.
secondTimestamp string Carimbo de data/hora recebido para outro nível de faixa/qualidade do tipo vídeo.
secondDuration string Duração do segmento de dados com o segundo carimbo de data/hora.
timescale string Escala temporal dos carimbos de data/hora e duração.

LiveEventIngestHeartbeat

O exemplo seguinte mostra o esquema do evento LiveEventIngestHeartbeat :

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "eventType": "Microsoft.Media.LiveEventIngestHeartbeat",
    "eventTime": "2021-05-14T23:50:00.324",
    "id": "7f450938-491f-41e1-b06f-c6cd3965d786",
    "data": {
      "trackType":"video",
      "trackName":"video",
      "bitrate":2500000,
      "incomingBitrate":2462597,
      "lastTimestamp":"106999",
      "timescale":"1000",
      "overlapCount":0,
      "discontinuityCount":0,
      "nonincreasingCount":0,
      "unexpectedBitrate":false,
      "state":"Running",
      "healthy":true,
      "lastFragmentArrivalTime":"2021-05-14T23:50:00.324",
      "ingestDriftValue":"0",
      "transcriptionState":"",
      "transcriptionLanguage":""
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
trackType cadeia (de carateres) Tipo de faixa (Áudio/Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso do RTMP, o servidor é gerado no formato TrackType_Bitrate ).
bitrate número inteiro Velocidade de transmissão da faixa.
incomingBitrate número inteiro Taxa de bits calculada com base em segmentos de dados provenientes do codificador.
lastTimestamp string Carimbo de data/hora mais recente recebido para uma faixa nos últimos 20 segundos.
timescale string Escala temporal em que os carimbos de data/hora são expressos.
overlapCount número inteiro O número de segmentos de dados tinha carimbos de data/hora sobrepostos nos últimos 20 segundos.
discontinuityCount número inteiro Número de descontinuidades observadas nos últimos 20 segundos.
nonIncreasingCount número inteiro O número de segmentos de dados com carimbos de data/hora no passado foi recebido nos últimos 20 segundos.
unexpectedBitrate bool Se as velocidades de bits esperadas e reais forem diferentes do limite permitido nos últimos 20 segundos. É verdade se e apenas se, incomingBitrate >= 2* velocidade de transmissão OU entradaBitrate <= velocidade de transmissão/2 OU Taxa de Entrada = 0.
state string Estado do evento em direto.
healthy bool Indica se a ingestão está em bom estado de funcionamento com base nas contagens e sinalizadores. Bom estado de funcionamento é verdade se overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false.
lastFragmentArrivalTime string O último carimbo de data/hora em UTC em que um fragmento chegou ao ponto final de ingestão. O formato de data de exemplo é "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 é superior a zero se os dados estiverem a chegar ao evento em direto mais lentos do que o esperado no último minuto; zero se os dados chegaram sem atraso; e "n/a" se não forem recebidos dados de áudio ou vídeo. Por exemplo, se tiver um codificador de contribuição a enviar conteúdos em direto e este estiver a abrandar devido a problemas de processamento ou latência de rede, só poderá fornecer um total de 58 segundos de áudio ou vídeo num período de um minuto. Isto seria reportado como dois segundos por minuto de deriva. Se o codificador conseguir recuperar e enviar todos os 60 segundos ou mais dados a cada minuto, verá este valor reportado como 0. Se tiver ocorrido uma desconexão ou descontinuação do codificador, este valor poderá continuar a ser apresentado como 0, uma vez que não contabiliza quebras nos dados – apenas os dados que estão atrasados nos carimbos de data/hora.
transcriptionState string Este valor é "Ativado" para heartbeats de faixa de áudio se a transcrição em direto estiver ativada, caso contrário, verá uma cadeia vazia. Este estado só é aplicável ao tracktype de "áudio" para transcrição em direto. Todas as outras faixas terão um valor vazio.
transcriptionLanguage string O código de idioma (no formato BCP-47) do idioma de transcrição. Por exemplo, "de-de" indica alemão (Alemanha). O valor está vazio para os heartbeats da faixa de vídeo ou quando a transcrição em direto é desativada.

LiveEventChannelArchiveHeartbeat

O exemplo seguinte mostra o esquema do evento LiveEventChannelArchiveHeartbeatEvent :

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "eventType": "Microsoft.Media.LiveEventChannelArchiveHeartbeat",
    "eventTime": "2021-05-14T23:50:00.324",
    "id": "7f450938-491f-41e1-b06f-c6cd3965d786",
    "data": {
      "channelLatencyMs": "10",
      "latencyResultCode": "S_OK"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
channelLatencyMs cadeia (de carateres) O tempo em milissegundos (ms) que o vídeo ingerido passa no pipeline de eventos em direto antes de ser publicado no manifesto HLS/DASH para os jogadores transferirem.
latencyResultCode string O código de resultado para o cálculo channelLatencyMs. S_OK indica que a ingestão de eventos em direto foi recebida sem problemas. Outros códigos de resultado indicam situações que fariam com que os channelLatencyMs tivessem um valor vazio. MPE_KEY_FRAME_INTERVAL_TOO_LARGE o código de erro indica que a origem de vídeo ingerida tem um GRANDE GOP (distância da moldura da chave) que afetaria negativamente a latência do canal. MPE_INGEST_DISCONTINUITY o código de erro indica que foram detetadas descontinuações no fluxo de origem, o que pode adicionar latências longas ao canal.

LiveEventTrackDiscontinuityDetected

O exemplo seguinte mostra o esquema do evento LiveEventTrackDiscontinuityDetected :

[
  {
    "topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.Media/mediaservices/<account-name>",
    "subject": "liveEvent/mle1",
    "eventType": "Microsoft.Media.LiveEventTrackDiscontinuityDetected",
    "eventTime": "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"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1"
  }
]

O objeto de dados tem as seguintes propriedades:

Propriedade Tipo Description
trackType cadeia (de carateres) Tipo de faixa (Áudio/Vídeo).
trackName string Nome da faixa (fornecido pelo codificador ou, no caso do RTMP, o servidor é gerado no formato TrackType_Bitrate ).
bitrate número inteiro Velocidade de transmissão da faixa.
previousTimestamp string Carimbo de data/hora do fragmento anterior.
newTimestamp string Carimbo de data/hora do fragmento atual.
discontinuityGap string Intervalo entre dois carimbos de data/hora acima.
timescale string Escala temporal em que tanto o carimbo de data/hora como o intervalo de descontinuidade são representados.

Propriedades comuns do evento

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

Propriedade Tipo Description
topic cadeia (de carateres) O tópico do event grid. Esta propriedade tem o ID de recurso da conta dos Serviços de Multimédia.
subject string O caminho do recurso para o canal dos Serviços de Multimédia na conta dos Serviços de Multimédia. A concatenação do tópico e do assunto dá-lhe o ID de recurso da tarefa.
eventType string Um dos tipos de eventos registados para esta origem de evento. Por exemplo, "Microsoft.Media.JobStateChange".
eventTime string A hora em que o evento é gerado com base na hora UTC do fornecedor.
id string Identificador exclusivo do evento.
data objeto Dados de eventos dos Serviços de Multimédia.
dataVersion string A versão do esquema do objeto de dados. O publicador define a versão do esquema.
metadataVersion string A versão do esquema dos metadados do evento. O Event Grid define o esquema das propriedades de nível superior. O Event Grid fornece este valor.

Ver também