Servizi multimediali di Azure come origine di Griglia di eventi
Questo articolo illustra gli schemi e le proprietà degli eventi di Servizi multimediali.
Tipi di evento correlati al processo
Servizi multimediali genera Tipi di eventi correlati al processo descritti di seguito. Esistono due categorie per gli eventi correlati al processo: "Monitoraggio delle modifiche dello stato del processo" e "Monitoraggio delle modifiche dello stato di output del processo".
È possibile registrarsi per tutti gli eventi eseguendo la sottoscrizione all'evento JobStateChange oppure eseguire la sottoscrizione solo a eventi specifici (ad esempio, agli stati finali come JobErrored, JobFinished e JobCanceled).
Monitoraggio delle modifiche dello stato del processo
Tipo di evento | Descrizione |
---|---|
Microsoft.Media.JobStateChange | Ottiene un evento per tutte le modifiche dello stato del processo. |
Microsoft.Media.JobScheduled | Ottiene un evento quando il processo passa allo stato pianificato. |
Microsoft.Media.JobProcessing | Ottiene un evento quando il processo passa allo stato di elaborazione. |
Microsoft.Media.JobCanceling | Ottiene un evento quando il processo passa allo stato di annullamento. |
Microsoft.Media.JobFinished | Ottiene un evento quando il processo passa allo stato completato. Si tratta di uno stato finale che include l'output del processo. |
Microsoft.Media.JobCanceled | Ottiene un evento quando il processo passa allo stato annullato. Si tratta di uno stato finale che include l'output del processo. |
Microsoft.Media.JobErrored | Ottiene un evento quando il processo passa allo stato di errore. Si tratta di uno stato finale che include l'output del processo. |
Vedere gli esempi di schema seguenti.
Monitoraggio delle modifiche dello stato di output del processo
Un processo può contenere più output di processo (se è stata configurata la trasformazione per avere più output del processo). Se si desidera tenere traccia dei dettagli dell'output del singolo processo, attendere un evento di modifica dell'output del processo.
Ogni processo sarà a un livello superiore rispetto a JobOutput, quindi gli eventi di output del processo vengono generati all'interno di un processo corrispondente.
I messaggi di errore in JobFinished
JobCanceled
, eseguono JobError
l'output dei risultati aggregati per ogni output del processo, al termine di tutti. Mentre gli eventi di output del processo vengono generati al termine di ogni attività. Ad esempio, se si dispone di un output di codifica, seguito da un output di Analisi video, si otterrebbero due eventi generati come eventi di output del processo prima che venga generato l'evento JobFinished finale con i dati aggregati.
Tipo di evento | Descrizione |
---|---|
Microsoft.Media.JobOutputStateChange | Ottiene un evento per tutte le modifiche dello stato di output del processo. |
Microsoft.Media.JobOutputScheduled | Ottiene un evento quando l'output del processo passa allo stato pianificato. |
Microsoft.Media.JobOutputProcessing | Ottiene un evento quando l'output del processo passa allo stato in elaborazione. |
Microsoft.Media.JobOutputCanceling | Ottiene un evento quando l'output del processo passa allo stato di annullamento. |
Microsoft.Media.JobOutputFinished | Ottiene un evento quando l'output del processo passa allo stato completato. |
Microsoft.Media.JobOutputCanceled | Ottiene un evento quando l'output del processo passa allo stato annullato. |
Microsoft.Media.JobOutputErrored | Ottiene un evento quando l'output del processo passa allo stato di errore. |
Vedere gli esempi di schema seguenti.
Monitoraggio dello stato di output del processo
Tipo di evento | Descrizione |
---|---|
Microsoft.Media.JobOutputProgress | Questo evento indica lo stato di avanzamento dell'elaborazione del processo, da 0% a 100%. Il servizio cerca di inviare un evento se il valore dello stato di avanzamento è aumentato del 5% o più oppure se sono passati più di 30 secondi dall'ultimo evento (heartbeat). Non è garantito che il valore di avanzamento inizi a 0%, o che raggiunga il 100%, né è garantito un aumento a una velocità costante nel tempo. Questo evento non deve essere usato per determinare che l'elaborazione è stata completata. È invece consigliabile usare gli eventi di modifica dello stato. |
Vedere gli esempi di schema seguenti.
Tipi di evento live
Servizi multimediali genera anche i tipi di evento live descritti di seguito. Esistono due categorie per gli eventi live: eventi a livello di flusso e a livello di traccia.
Eventi a livello di flusso
Gli eventi a livello di flusso vengono generati per singolo flusso o connessione. Ogni evento ha un parametro StreamId
che identifica la connessione o il flusso. Ogni flusso o connessione dispone di una o più tracce di tipi diversi. Ad esempio, una connessione da un codificatore può avere una traccia audio e quattro tracce video. I tipi di evento di flusso sono i seguenti:
Tipo di evento | Descrizione |
---|---|
Microsoft.Media.LiveEventConnectionRejected | Il tentativo di connessione del codificatore viene rifiutato. |
Microsoft.Media.LiveEventEncoderConnected | Il codificatore stabilisce una connessione con l'evento live. |
Microsoft.Media.LiveEventEncoderDisconnected | Il codificatore si disconnette. |
Vedere gli esempi di schema seguenti.
Eventi a livello di traccia
Gli eventi a livello di traccia vengono generati per singola traccia.
Nota
Tutti gli eventi a livello di traccia vengono generati dopo la connessione di un codificatore live.
I tipi di evento a livello di traccia sono:
Tipo di evento | Descrizione |
---|---|
Microsoft.Media.LiveEventIncomingDataChunkDropped | Il server dei contenuti multimediali elimina il blocco di dati perché è troppo tardi o presenta un timestamp sovrapposto. Il timestamp del nuovo blocco di dati è minore rispetto all'ora di fine del blocco di dati precedente. |
Microsoft.Media.LiveEventIncomingStreamReceived | Il server dei contenuti multimediali riceve il primo blocco di dati per ogni traccia nel flusso o nella connessione. |
Microsoft.Media.LiveEventIncomingStreamsOutOfSync | Il server multimediale rileva che i flussi audio e video non sono sincronizzati. Usare come avviso perché l'esperienza utente potrebbe non essere interessata. |
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync | Il server multimediale rileva che uno dei due flussi video provenienti dal codificatore esterno non è sincronizzato. Usare come avviso perché l'esperienza utente potrebbe non essere interessata. |
Microsoft.Media.LiveEventIngestHeartbeat | Pubblicato ogni 20 secondi per ogni traccia quando l'evento live è in esecuzione. Presenta un riepilogo dell'integrità dell'inserimento. Dopo la connessione iniziale del codificatore, l'evento heartbeat continua a generare ogni 20 secondi se il codificatore è ancora connesso o meno. |
Microsoft.Media.LiveEventTrackDiscontinuityDetected | Il server dei contenuti multimediali rileva discontinuità nella traccia in ingresso. |
Vedere gli esempi di schema seguenti.
Esempi di schema di eventi
JobStateChange
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
previousState |
string | Stato del processo prima dell'evento. |
state |
string | Nuovo stato del processo notificato in questo evento. Ad esempio, "Pianificato: il processo è pronto per l'avvio" o "Completato: il processo è terminato". |
Dove lo stato del processo può essere uno dei valori: Queued, Scheduled, Processing, Finished, Error, Canceled, Canceling
Nota
Queued sarà presente nella proprietà previousState ma non nella proprietà stato.
JobScheduled, JobProcessing, JobCanceling
Per ogni cambiamento non finale dello stato del processo (ad esempio, JobScheduled, JobProcessing, JobCanceling), lo schema di esempio sarà simile al seguente:
[{
"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
Per ogni cambiamento finale dello stato del processo (ad esempio, JobFinished, JobCanceled, JobErrored), lo schema di esempio sarà simile al seguente:
[{
"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"
}]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrizione |
---|---|---|
outputs |
Matrice | Ottiene gli output del processo. |
JobOutputStateChange
L'esempio seguente illustra lo schema dell'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
Per ogni cambiamento di stato JobOutput, lo schema di esempio sarà simile al seguente:
[{
"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
Lo schema di esempio è simile a quanto segue:
[{
"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
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
streamId |
string | Identificatore del flusso o della connessione. Il codificatore o il cliente è responsabile dell'aggiunta di questo ID nell'URL di inserimento. |
ingestUrl |
string | URL di inserimento fornito dall'evento live. |
encoderIp |
string | Indirizzo IP del codificatore. |
encoderPort |
string | Porta del codificatore da cui proviene il flusso. |
resultCode |
string | Motivo per cui la connessione è stata rifiutata. I codici di risultato sono elencati nella tabella seguente. |
È possibile trovare i codici dei risultati dell'errore nei codici di errore degli eventi live.
LiveEventEncoderConnected
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
streamId |
string | Identificatore del flusso o della connessione. Il codificatore o il cliente è responsabile della specifica di questo ID nell'URL di inserimento. |
ingestUrl |
string | URL di inserimento fornito dall'evento live. |
encoderIp |
string | Indirizzo IP del codificatore. |
encoderPort |
string | Porta del codificatore da cui proviene il flusso. |
LiveEventEncoderDisconnected
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
streamId |
string | Identificatore del flusso o della connessione. Il codificatore o il cliente è responsabile dell'aggiunta di questo ID nell'URL di inserimento. |
ingestUrl |
string | URL di inserimento fornito dall'evento live. |
encoderIp |
string | Indirizzo IP del codificatore. |
encoderPort |
string | Porta del codificatore da cui proviene il flusso. |
resultCode |
string | Motivo di disconnessione del codificatore. La causa può essere una disconnessione normale o causata da un errore. I codici di risultato sono elencati nella tabella seguente. |
È possibile trovare i codici dei risultati dell'errore nei codici di errore degli eventi live.
I codici di risultato della disconnessione normale sono:
Codice risultato | Descrizione |
---|---|
S_OK | Il codificatore si è disconnesso correttamente. |
MPE_CLIENT_TERMINATED_SESSION | Codificatore disconnesso (RTMP). |
MPE_CLIENT_DISCONNECTED | Codificatore disconnesso (FMP4). |
MPI_REST_API_CHANNEL_RESET | Il comando di ripristino del canale è stato ricevuto. |
MPI_REST_API_CHANNEL_STOP | Il comando di arresto del canale è stato ricevuto. |
MPI_REST_API_CHANNEL_STOP | Canale in fase di manutenzione. |
MPI_STREAM_HIT_EOF | Flusso EOF inviato dal codificatore. |
LiveEventIncomingDataChunkDropped
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
trackType |
string | Tipo di traccia (audio/video). |
trackName |
string | Nome della traccia. |
bitrate |
integer | Velocità in bit della traccia. |
timestamp |
string | Timestamp del blocco di dati eliminato. |
timescale |
string | Scala cronologica del timestamp. |
resultCode |
string | Motivo dell'eliminazione del blocco di dati. FragmentDrop_OverlapTimestamp o FragmentDrop_NonIncreasingTimestamp. |
LiveEventIncomingStreamReceived
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
trackType |
string | Tipo di traccia (audio/video). |
trackName |
string | Nome della traccia (fornito dal codificatore o, in caso di RTMP, generato dal server nel formato TrackType_Bitrate). |
bitrate |
integer | Velocità in bit della traccia. |
ingestUrl |
string | URL di inserimento fornito dall'evento live. |
encoderIp |
string | Indirizzo IP del codificatore. |
encoderPort |
string | Porta del codificatore da cui proviene il flusso. |
timestamp |
string | Primo timestamp del blocco di dati ricevuto. |
timescale |
string | Scala cronologica in cui è rappresentato il timestamp. |
LiveEventIncomingStreamsOutOfSync
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
minLastTimestamp |
string | Numero minimo dei timestamp più recenti tra le tracce (audio o video). |
typeOfTrackWithMinLastTimestamp |
string | Tipo di traccia (audio o video) con numero minimo di timestamp più recenti. |
maxLastTimestamp |
string | Numero massimo di tutti i timestamp tra le tracce (audio o video). |
typeOfTrackWithMaxLastTimestamp |
string | Tipo di traccia (audio o video) con numero massimo di timestamp più recenti. |
timescaleOfMinLastTimestamp |
string | Ottiene la scala cronologica in cui è rappresentato "MinLastTimestamp". |
timescaleOfMaxLastTimestamp |
string | Ottiene la scala cronologica in cui è rappresentato "MaxLastTimestamp". |
LiveEventIncomingVideoStreamsOutOfSync
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
firstTimestamp |
string | Timestamp ricevuto per uno dei livelli di traccia/qualità del tipo di video. |
firstDuration |
string | Durata del blocco di dati con il primo timestamp. |
secondTimestamp |
string | Timestamp ricevuto per altri livelli di traccia/qualità del tipo di video. |
secondDuration |
string | Durata del blocco di dati con il secondo timestamp. |
timescale |
string | Scala cronologica dei timestamp e durata. |
LiveEventIngestHeartbeat
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
trackType |
string | Tipo di traccia (audio/video). |
trackName |
string | Nome della traccia (fornito dal codificatore o, in caso di RTMP, generato dal server nel formato TrackType_Bitrate). |
bitrate |
integer | Velocità in bit della traccia. |
incomingBitrate |
integer | Velocità in bit calcolata in base ai blocchi di dati provenienti dal codificatore. |
lastTimestamp |
string | Timestamp più recente ricevuto per una traccia negli ultimi 20 secondi. |
timescale |
string | Scala cronologica in cui sono espressi i timestamp. |
overlapCount |
integer | Numero di blocchi di dati sovrapposti al timestamp negli ultimi 20 secondi. |
discontinuityCount |
integer | Numero di discontinuità osservate negli ultimi 20 secondi. |
nonIncreasingCount |
integer | Numero di blocchi di dati con timestamp ricevuti in passato negli ultimi 20 secondi. |
unexpectedBitrate |
bool | Se la velocità in bit prevista e quella effettiva superano il limite consentito negli ultimi 20 secondi. È true se e solo se, incomingBitrate >= 2* bitrate OR incomingBitrate = bitrate </2 OR IncomingBitrate = 0. |
state |
string | Stato dell'evento live. |
healthy |
bool | Indica se l'inserimento è integro, in base ai conteggi e ai flag. Healthy è true sei valori sono: overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false. |
lastFragmentArrivalTime |
string | L'ultimo timestamp nell'ora UTC in cui un frammento è arrivato all'endpoint di inserimento. Il formato di data di esempio è "2020-11-11 12:12:12:888999" |
ingestDriftValue |
string | Indica la velocità di ritardo, in secondi al minuto, dei dati audio o video in ingresso durante l'ultimo minuto. Il valore è maggiore di zero se i dati arrivano all'evento live più lento del previsto nell'ultimo minuto; zero se i dati sono arrivati senza ritardo; e "n/a" se non sono stati ricevuti dati audio o video. Ad esempio, se si ha un codificatore di contributi che invia contenuto live e si rallenta a causa di problemi di elaborazione o la latenza di rete, può essere in grado di distribuire un totale di 58 secondi di audio o video in un periodo di un minuto. Questo verrebbe segnalato come 2 secondi al minuto di deriva. Se il codificatore è in grado di recuperare e inviare tutti i 60 secondi o più dati ogni minuto, questo valore verrà segnalato come 0. Se si è verificato un problema di disconnessione o interruzione dal codificatore, questo valore potrebbe comunque essere visualizzato come 0, perché non tiene conto delle interruzioni nei dati, solo i dati ritardati nei timestamp. |
transcriptionState |
string | Questo valore è "Attivato" per gli heartbeat di traccia audio se la trascrizione live è attivata; in caso contrario, verrà visualizzata una stringa vuota. Questo stato è applicabile solo atracktype per audio la trascrizione live. Tutte le altre tracce avranno un valore vuoto. |
transcriptionLanguage |
string | Codice linguistico (in formato BCP-47) della lingua di trascrizione. Ad esempio , "de-de" indica il tedesco (Germania). Il valore è vuoto per gli heartbeat di traccia video o quando la trascrizione in tempo reale è disattivata. |
LiveEventTrackDiscontinuityDetected
L'esempio seguente illustra lo schema dell'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"
}
]
Di seguito sono elencate le proprietà dell'oggetto dati:
Proprietà | Type | Descrzione |
---|---|---|
trackType |
string | Tipo di traccia (audio/video). |
trackName |
string | Nome della traccia (fornito dal codificatore o, in caso di RTMP, generato dal server nel formato TrackType_Bitrate). |
bitrate |
integer | Velocità in bit della traccia. |
previousTimestamp |
string | Timestamp del frammento precedente. |
newTimestamp |
string | Timestamp del frammento corrente. |
discontinuityGap |
string | Spazio tra i due timestamp precedenti. |
timescale |
string | Scala cronologica in cui sono rappresentati i timestamp e lo spazio di discontinuità. |
Proprietà dell'evento comune
Un evento presenta i seguenti dati di primo livello:
Proprietà | Type | Descrzione |
---|---|---|
topic |
string | Argomento di Griglia di eventi. Questa proprietà include l'ID risorsa per l'account di Servizi multimediali. |
subject |
string | Il percorso della risorsa per il canale di Servizi multimediali nell'account di Servizi multimediali. La concatenazione dell'argomento e del soggetto fornisce l'ID risorsa per il processo. |
eventType |
string | Uno dei tipi di evento registrati per l'origine evento. Ad esempio, "Microsoft.Media.JobStateChange". |
eventTime |
string | Ora di generazione dell'evento in base all'ora UTC del provider. |
id |
string | Identificatore univoco per l'evento. |
data |
oggetto | Dati dell'evento di Servizi multimediali. |
dataVersion |
string | Versione dello schema dell'oggetto dati. La versione dello schema è definita dall'origine di pubblicazione. |
metadataVersion |
string | Versione dello schema dei metadati dell'evento. Lo schema delle proprietà di primo livello è definito da Griglia di eventi. Questo valore viene specificato da Griglia di eventi. |
Passaggi successivi
Vedere Registrare gli eventi di modifica dello stato del processo