Azure Event Grid esquemas para eventos dos Serviços de Multimédia
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.
Tipos de eventos relacionados com tarefas
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. |