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.
Tipos de eventos relacionados ao trabalho
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