Azure Media Services como origen de Event Grid

En este artículo se proporcionan los esquemas y las propiedades para los eventos de Media Services.

Media Services emite los tipos de eventos relacionados con el trabajo que se describen a continuación. Existen dos categorías para los eventos relacionados con el trabajo: "supervisión de cambios de estado de trabajo" y "supervisión de cambios de estado de salida de trabajo".

Para registrarse para todos los eventos, puede suscribirse al evento JobStateChange. O bien, puede suscribirse solo a eventos específicos (por ejemplo, estados finales como JobErrored, JobFinished y JobCanceled).

Supervisión de cambios de estado de trabajo

Tipo de evento Descripción
Microsoft.Media.JobStateChange Permite obtener un evento para todos los cambios de estado del trabajo.
Microsoft.Media.JobScheduled Permite obtener un evento cuando el trabajo realiza la transición al estado programado.
Microsoft.Media.JobProcessing Permite obtener un evento cuando el trabajo realiza la transición al estado de procesamiento en curso.
Microsoft.Media.JobCanceling Permite obtener un evento cuando el trabajo realiza la transición al estado de cancelación en curso.
Microsoft.Media.JobFinished Permite obtener un evento cuando el trabajo realiza la transición al estado finalizado. Se trata de un estado final que incluye las salidas del trabajo.
Microsoft.Media.JobCanceled Permite obtener un evento cuando el trabajo realiza la transición al estado cancelado. Se trata de un estado final que incluye las salidas del trabajo.
Microsoft.Media.JobErrored Permite obtener un evento cuando el trabajo realiza la transición al estado de error. Se trata de un estado final que incluye las salidas del trabajo.

Consulte los Ejemplos de esquema siguientes.

Supervisión de cambios de estado de salida de trabajo

Un trabajo puede contener varias salidas de trabajo (si ha configurado la transformación para que tenga varias salidas de trabajo) Si quiere realizar el seguimiento de los detalles de salida de un trabajo individual, escuche un evento de cambio de salida del trabajo.

Cada elemento Job estará en un nivel superior al de JobOutput, por lo que los eventos de salida de trabajo se activan dentro de un trabajo correspondiente.

Los mensajes de error de JobFinished, JobCanceled, JobError muestran los resultados agregados para cada salida de trabajo, cuando todos han finalizado. Por su parte, los eventos de salida del trabajo se activan cuando finaliza cada tarea. Por ejemplo, si tiene una salida de codificación, seguida de una de análisis de vídeo, obtendría dos eventos que se desencadenan como eventos de salida de trabajo antes de que el evento JobFinished final se desencadene con los datos agregados.

Tipo de evento Descripción
Microsoft.Media.JobOutputStateChange Permite obtener un evento para todos los cambios de estado de salida del trabajo.
Microsoft.Media.JobOutputScheduled Permite obtener un evento cuando la salida del trabajo realiza la transición al estado programado.
Microsoft.Media.JobOutputProcessing Permite obtener un evento cuando la salida del trabajo realiza la transición al estado de procesamiento en curso.
Microsoft.Media.JobOutputCanceling Permite obtener un evento cuando la salida del trabajo realiza la transición al estado de cancelación en curso.
Microsoft.Media.JobOutputFinished Permite obtener un evento cuando la salida del trabajo realiza la transición al estado finalizado.
Microsoft.Media.JobOutputCanceled Permite obtener un evento cuando la salida del trabajo realiza la transición al estado cancelado.
Microsoft.Media.JobOutputErrored Permite obtener un evento cuando la salida del trabajo realiza la transición al estado de error.

Consulte los Ejemplos de esquema siguientes.

Supervisión del progreso de salida del trabajo

Tipo de evento Descripción
Microsoft.Media.JobOutputProgress Este evento refleja el progreso del procesamiento de trabajo del 0 % al 100 %. El servicio intenta enviar un evento si se ha producido un aumento del 5 % o mayor en el valor de progreso o han pasado más de 30 segundos desde el último evento (latido). No se garantiza que el valor de progreso se inicie en el 0 %, o que alcance el 100 %, ni tampoco que aumente a una velocidad constante a lo largo del tiempo. No debe utilizar este evento para determinar si se ha completado el procesamiento; en su lugar, utilice los eventos de cambio de estado.

Consulte los Ejemplos de esquema siguientes.

Tipos de eventos en directo

Media Services emite los tipos de eventos en directo que se describen a continuación. Existen dos categorías para los eventos en directo: eventos a nivel de transmisión y eventos a nivel de pista.

Eventos de nivel de transmisión

Los eventos de nivel de transmisión se generan en función de la transmisión o conexión. Cada evento tiene un parámetro StreamId que identifica la conexión o la transmisión. Cada transmisión o conexión tiene una o más pistas de diferentes tipos. Por ejemplo, una conexión de un codificador puede tener una pista de audio y cuatro pistas de vídeo. Los tipos de evento de transmisión son:

Tipo de evento Descripción
Microsoft.Media.LiveEventConnectionRejected Se rechazó el intento de conexión del codificador.
Microsoft.Media.LiveEventEncoderConnected El codificador se conectó al evento en directo.
Microsoft.Media.LiveEventEncoderDisconnected El codificador se desconecta.

Consulte los Ejemplos de esquema siguientes.

Eventos de nivel de seguimiento

Los eventos de nivel de seguimiento se generan por pista.

Nota

Todos los eventos de nivel de seguimiento se generan después de conectarse un codificador en directo.

Los tipos de evento de nivel de seguimiento son:

Tipo de evento Descripción
Microsoft.Media.LiveEventIncomingDataChunkDropped El servidor multimedia elimina el fragmento de datos porque es demasiado tarde o porque tiene una marca de tiempo superpuesta (la marca de tiempo del nuevo fragmento de datos es menor que el tiempo de finalización del fragmento de datos anterior).
Microsoft.Media.LiveEventIncomingStreamReceived El servidor multimedia recibe el primer fragmento de datos de cada pista en la transmisión o la conexión.
Microsoft.Media.LiveEventIncomingStreamsOutOfSync El servidor multimedia detecta que las transmisiones de audio y vídeo no están sincronizadas. Se usa como advertencia porque la experiencia del usuario no se verá afectada.
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync El servidor multimedia detecta que cualquiera de las dos transmisiones de vídeo provenientes del codificador externo no está sincronizada. Se usa como advertencia porque la experiencia del usuario no se verá afectada.
Microsoft.Media.LiveEventIngestHeartbeat Se publica cada 20 segundos para cada pista cuando se está ejecutando el evento en directo. Proporciona resumen de mantenimiento de la ingesta.

Después de conectarse inicialmente el codificador, el evento de latido continúa emitiéndose cada 20 seg. independientemente de si el codificador sigue conectado o no.
Microsoft.Media.LiveEventTrackDiscontinuityDetected El servidor multimedia detecta una discontinuidad en la pista entrante.

Consulte los Ejemplos de esquema siguientes.

Ejemplos de esquema de eventos

JobStateChange

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
previousState string El estado del trabajo antes del evento.
state string El nuevo estado del trabajo que se notifica en este evento. Por ejemplo, "Programado: el trabajo está listo para comenzar" o "Finalizado: el trabajo ha finalizado".

Donde el estado del trabajo puede ser uno de los valores siguientes: Queued, Scheduled, Processing, Finished, Error, Canceled, Canceling.

Nota

Queued solo estará presente en la propiedad previousState pero no en la propiedad state.

JobScheduled, JobProcessing, JobCanceling

Para cada cambio de estado de trabajo no final (por ejemplo, JobScheduled, JobProcessing y JobCanceling), el esquema de ejemplo tiene un aspecto similar al siguiente:

[{
  "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 cambio de estado de trabajo final (por ejemplo, JobFinished, JobCanceled y JobErrored), el esquema de ejemplo tiene un aspecto similar al siguiente:

[{
  "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"
}]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Descripción
outputs Array Permite obtener las salidas del trabajo.

JobOutputStateChange

En este ejemplo se muestra el esquema del 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 cambio de estado JobOutput, el esquema de ejemplo tiene un aspecto similar al siguiente:

[{
  "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

El esquema de ejemplo es similar al siguiente:

[{
  "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

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
streamId string Identificador de la transmisión o la conexión. El codificador o el cliente es responsable de agregar este id. en la URL de introducción.
ingestUrl string Introducir la dirección URL que proporcionó el evento en directo.
encoderIp string Dirección IP del codificador.
encoderPort string Puerto del codificador de donde procede esta transmisión.
resultCode string El motivo por el que se rechazó la conexión. En la tabla siguiente se muestran los códigos de resultados:

Puede encontrar los códigos de resultado de error en Códigos de error de eventos en directo de Media Services.

LiveEventEncoderConnected

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
streamId string Identificador de la transmisión o la conexión. El codificador o el cliente es responsable de proporcionar este id. en la URL de introducción.
ingestUrl string Introducir la dirección URL que proporcionó el evento en directo.
encoderIp string Dirección IP del codificador.
encoderPort string Puerto del codificador de donde procede esta transmisión.

LiveEventEncoderDisconnected

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
streamId string Identificador de la transmisión o la conexión. El codificador o el cliente es responsable de agregar este id. en la URL de introducción.
ingestUrl string Introducir la dirección URL que proporcionó el evento en directo.
encoderIp string Dirección IP del codificador.
encoderPort string Puerto del codificador de donde procede esta transmisión.
resultCode string La razón por la cual el codificador se desconecta. Podría ser un cierre estable o un error. En la tabla siguiente se muestran los códigos de resultados:

Puede encontrar los códigos de resultado de error en Códigos de error de eventos en directo de Media Services.

Los códigos de resultado del cierre estable son:

Código de resultado Descripción
S_OK El codificador se desconectó correctamente.
MPE_CLIENT_TERMINATED_SESSION Codificador desconectado (RTMP).
MPE_CLIENT_DISCONNECTED Codificador desconectado (FMP4).
MPI_REST_API_CHANNEL_RESET Se recibió el comando de restablecimiento de canal.
MPI_REST_API_CHANNEL_STOP Se recibió el comando de parada de canal.
MPI_REST_API_CHANNEL_STOP Canal en mantenimiento.
MPI_STREAM_HIT_EOF La transmisión EOF que envía el codificador.

LiveEventIncomingDataChunkDropped

En el ejemplo siguiente, se muestra el esquema de un evento LiveEventIncomingDataChunkDropped:

[
  {
    "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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
trackType string Tipo de pista (audio/vídeo).
trackName string Nombre de la pista.
bitrate integer Velocidad de bits de la pista.
timestamp string Marca de tiempo del fragmento de datos proporcionado.
timescale string Escala temporal de la marca de tiempo.
resultCode string Razón del fragmento de datos proporcionado. FragmentDrop_OverlapTimestamp o FragmentDrop_NonIncreasingTimestamp.

LiveEventIncomingStreamReceived

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
trackType string Tipo de pista (audio/vídeo).
trackName string Nombre de la pista (lo puede proporcionar el codificador o, en el caso de RTMP, el servidor se genera en formato TrackType_Bitrate).
bitrate integer Velocidad de bits de la pista.
ingestUrl string Introducir la dirección URL que proporcionó el evento en directo.
encoderIp string Dirección IP del codificador.
encoderPort string Puerto del codificador de donde procede esta transmisión.
timestamp string Primera marca de tiempo del fragmento de datos recibido.
timescale string Escala temporal en la que se representa la marca de tiempo.

LiveEventIncomingStreamsOutOfSync

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
minLastTimestamp string Mínimo de las últimas marcas de tiempo entre todas las pistas (audio o vídeo).
typeOfTrackWithMinLastTimestamp string Tipo de pista (audio o vídeo) con la última marca de tiempo mínima.
maxLastTimestamp string Máximo de las todas las marcas de tiempo entre todas las pistas (audio o vídeo).
typeOfTrackWithMaxLastTimestamp string Tipo de pista (audio o vídeo) con la última marca de tiempo máxima.
timescaleOfMinLastTimestamp string Permite obtener la escala temporal en la que se representa “MinLastTimestamp”.
timescaleOfMaxLastTimestamp string Permite obtener la escala temporal en la que se representa “MaxLastTimestamp”.

LiveEventIncomingVideoStreamsOutOfSync

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
firstTimestamp string Marca de tiempo recibida para una de las pistas o niveles de calidad de tipo de vídeo.
firstDuration string Duración del fragmento de datos con la primera marca de tiempo.
secondTimestamp string Marca de tiempo recibida para algún otro nivel de pista o calidad del tipo de vídeo.
secondDuration string Duración del fragmento de datos con la segunda marca de tiempo.
timescale string Escala de tiempo de marcas de tiempo y duración.

LiveEventIngestHeartbeat

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
trackType string Tipo de pista (audio/vídeo).
trackName string Nombre de la pista (lo puede proporcionar el codificador o, en el caso de RTMP, el servidor se genera en formato TrackType_Bitrate).
bitrate integer Velocidad de bits de la pista.
incomingBitrate integer Velocidad de bits calculada en función de los fragmentos de datos procedentes del codificador.
lastTimestamp string Última marca de tiempo recibida para una pista en los últimos 20 segundos.
timescale string Escala temporal en la que se expresan las marcas de tiempo.
overlapCount integer Número de fragmentos de datos que tienen marcas de tiempo superpuestas en los últimos 20 segundos.
discontinuityCount integer Número de interrupciones observada en los últimos 20 segundos.
nonIncreasingCount integer Número de fragmentos de datos con marcas de tiempo en el pasado que se recibieron en los últimos 20 segundos.
unexpectedBitrate bool Si las velocidades de bits esperadas y reales superan el límite permitido en los últimos 20 segundos. Es "true" si, y solo si, la velocidad de bits de incomingBitrate >= 2* O incomingBitrate <= velocidad de bits/2 O IncomingBitrate = 0.
state string Estado del evento en directo.
healthy bool Indica si la ingesta está en buen estado según los recuentos y las marcas. Estará en buen estado si este tiene el valor "true" y si overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false.
lastFragmentArrivalTime string La última marca de tiempo en UTC en la que un fragmento llegó al punto de conexión de ingesta. El ejemplo de formato de fecha es "2020-11-11 12:12:12:888999"
ingestDriftValue string Indica la velocidad del retraso, en segundos por minuto, de los datos de audio o vídeo entrantes durante el último minuto. El valor es mayor que cero si los datos llegan al evento en directo más lentamente de lo esperado en el último minuto; cero si los datos llegaron sin retraso; y "n/a" si no se han recibido datos de audio o vídeo. Por ejemplo, si tiene un codificador de contribución que envía contenido en directo y pierde velocidad debido a problemas de procesamiento o latencia de red, es posible que solo pueda entregar un total de 58 segundos de audio o vídeo en un minuto. Esto se notificaría como un desfase de 2 segundos por minuto. Si el codificador puede ponerse al día y enviar los 60 segundos o más, de datos por minuto, verá que este valor se notifica como 0. Si se ha producido una desconexión o una discontinuidad del codificador, este valor puede aparecer como 0, ya que no tiene en cuenta las interrupciones en los datos, solo los datos que se retrasan en las marcas de tiempo.
transcriptionState string Este valor está "Activado" para los latidos de pista de audio si la transcripción en vivo está activada; de lo contrario, verá una cadena vacía. Este estado solo es aplicable al tracktype de audio para la transcripción en directo. Todas las demás pistas tendrán un valor vacío.
transcriptionLanguage string Código de idioma (en formato BCP-47) del idioma de transcripción. Por ejemplo, "de-de" indica alemán (Alemania). El valor está vacío para los latidos de la pista de vídeo o cuando la transcripción en directo está desactivada.

LiveEventTrackDiscontinuityDetected

En el ejemplo siguiente, se muestra el esquema de un 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"
  }
]

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
trackType string Tipo de pista (audio/vídeo).
trackName string Nombre de la pista (lo puede proporcionar el codificador o, en el caso de RTMP, el servidor se genera en formato TrackType_Bitrate).
bitrate integer Velocidad de bits de la pista.
previousTimestamp string Marca de tiempo del fragmento anterior.
newTimestamp string Marca de tiempo del fragmento actual.
discontinuityGap string Intervalo entre las dos marcas de tiempo anteriores.
timescale string Escala temporal en la que se representan tanto la marca de tiempo como el intervalo de discontinuidad.

Propiedades personalizadas del evento

Un evento tiene los siguientes datos de nivel superior:

Propiedad Tipo Description
source string Tema de Event Grid. Esta propiedad tiene el id. de recurso de la cuenta de Media Services.
subject string La ruta de acceso del recurso del canal de Media Services en la cuenta de Media Services. Al concatenar los temas, obtendrá la identificación del recurso para el trabajo.
type string Uno de los tipos de eventos registrados para este origen de eventos. Por ejemplo, "Microsoft.Media.JobStateChange".
time string La hora de generación del evento en función de la hora UTC del proveedor.
id string Identificador único para el evento
data object Datos del evento de Media Services.
specversion string Versión de especificación del esquema CloudEvents.

Pasos siguientes

Consulte Regístrese para los eventos de cambio de estado del trabajo.

Consulte también