Share via


Schémas Azure Event Grid pour les événements Media Services

Logo de Media Services v3


Avertissement

Azure Media Services sera mis hors service le 30 juin 2024. Pour plus d’informations, consultez le Guide de mise hors service AMS.

Cet article fournit les schémas et les propriétés pour les événements Media Services.

Pour obtenir la liste des exemples de scripts et des didacticiels, consultez Media Services event source (Source d’événement Media Services).

Media Services émet les types d’événements associés au travail décrits ci-dessous. Il existe deux catégories d’événements associés au travail : « Supervision des changements d’état du travail » et « Supervision des changements d’état de la sortie du travail ».

Vous pouvez vous inscrire à tous les événements en vous abonnant à l’événement JobStateChange. Vous pouvez aussi choisir de vous abonner uniquement à des événements spécifiques (par exemple, aux états finaux que sont JobErrored, JobFinished et JobCanceled).

Supervision des changements d’état du travail

Type d'événement Description
Microsoft.Media.JobStateChange Obtient un événement pour tous les changements d’état du travail.
Microsoft.Media.JobScheduled Obtient un événement quand un travail passe à l’état Planifié.
Microsoft.Media.JobProcessing Obtient un événement quand un travail passe à l’état En cours de traitement.
Microsoft.Media.JobCanceling Obtient un événement quand un travail passe à l’état Annulation.
Microsoft.Media.JobFinished Obtient un événement quand un travail passe à l’état Terminé. Il s’agit d’un état final qui inclut les sorties du travail.
Microsoft.Media.JobCanceled Obtient un événement quand un travail passe à l’état Annulé. Il s’agit d’un état final qui inclut les sorties du travail.
Microsoft.Media.JobErrored Obtient un événement quand un travail passe à l’état Erreur. Il s’agit d’un état final qui inclut les sorties du travail.

Consultez les exemples de schémas qui suivent.

Supervision des changements d’état de sortie du travail

Un travail peut contenir plusieurs sorties de travail (si vous avez configuré la transformation pour avoir plusieurs sorties de travail). Si vous souhaitez suivre les détails de la sortie individuelle d’un travail, écoutez l’événement de modification de la sortie d’un travail.

Chaque travail sera à un niveau supérieur à JobOutput, ce qui entraîne le déclenchement des événements de sortie de travail dans un travail correspondant.

Les messages d’erreur dans JobFinished, JobCanceled, JobError sortent les résultats agrégés pour chaque sortie de travail, lorsque toutes sont terminées. En revanche, les événements de sortie du travail se déclenchent à mesure que chaque tâche se termine. Par exemple, si vous avez une sortie d’encodage, suivie d’une sortie Video Analytics, vous obtiendriez deux événements déclenchant des événements de sortie de travail avant que l’événement JobFinished final ne se déclenche avec les données agrégées.

Type d'événement Description
Microsoft.Media.JobOutputStateChange Obtient un événement pour tous les changements d’état de sortie du travail.
Microsoft.Media.JobOutputScheduled Obtient un événement quand la sortie du travail passe à l’état Planifié.
Microsoft.Media.JobOutputProcessing Obtient un événement quand la sortie du travail passe à l’état En cours de traitement.
Microsoft.Media.JobOutputCanceling Obtient un événement quand la sortie du travail passe à l’état Annulation.
Microsoft.Media.JobOutputFinished Obtient un événement quand la sortie du travail passe à l’état Terminé.
Microsoft.Media.JobOutputCanceled Obtient un événement quand la sortie du travail passe à l’état Annulé.
Microsoft.Media.JobOutputErrored Obtient un événement quand la sortie du travail passe à l’état Erreur.

Consultez les exemples de schémas qui suivent.

Surveillance de la progression de la sortie des travaux

Type d'événement Description
Microsoft.Media.JobOutputProgress Cet événement reflète la progression du traitement des travaux de 0 à 100 %. Le service tente d’envoyer un événement s’il y a eu une augmentation de 5 % ou plus de la valeur de progression ou si plus de 30 secondes se sont écoulées depuis le dernier événement (pulsation). Il n’est pas garanti que la valeur de progression commence à 0 % ni qu’elle atteigne 100 %, ni encore qu’elle augmente à un taux constant dans le temps. Cet événement ne doit pas être utilisé pour déterminer que le traitement a été effectué. Vous devez utiliser à la place les événements de changement d’état.

Consultez les exemples de schémas qui suivent.

Types d’événements en direct

Media Services émet aussi les types d’événements en direct décrits ci-dessous. Il existe deux catégories d’événements en direct : les événements de flux de données et les événements de piste.

Événements de flux de données

Les événements de flux sont déclenchés par le flux de données ou la connexion. Chaque événement possède un paramètre StreamId qui identifie la connexion ou le flux. Chaque flux de données ou connexion dispose d’une ou de plusieurs pistes de différents types. Par exemple, une même connexion provenant d’un encodeur peut avoir une seule piste audio et quatre pistes vidéo. Les types d’événements de flux de données sont :

Type d'événement Description
Microsoft.Media.LiveEventConnectionRejected La tentative de connexion de l’encodeur est rejetée.
Microsoft.Media.LiveEventEncoderConnected L’encodeur établit une connexion avec l’événement en direct.
Microsoft.Media.LiveEventEncoderDisconnected L’encodeur se déconnecte.

Consultez les exemples de schémas qui suivent.

Événements de piste

Les événements de piste sont déclenchés en fonction de la piste.

Notes

Tous les événements de niveau suivi sont déclenchés après qu’un encodeur live est connecté.

Les types d’événements de niveau suivi sont :

Type d'événement Description
Microsoft.Media.LiveEventIncomingDataChunkDropped Le serveur multimédia supprime le bloc de données, car il est trop tard ou les timestamps se chevauchent (le timestamp du nouveau bloc de données est inférieur à l’heure de fin du bloc de données précédent).
Microsoft.Media.LiveEventIncomingStreamReceived Le serveur multimédia reçoit le premier bloc de données pour chaque piste dans le flux ou la connexion.
Microsoft.Media.LiveEventIncomingStreamsOutOfSync Le serveur multimédia détecte des flux audio et vidéo qui ne sont pas synchronisés. Ce type d’événement doit être utilisé comme un avertissement, car l’expérience utilisateur peut ne pas être affectée.
Microsoft.Media.LiveEventIncomingVideoStreamsOutOfSync Le serveur multimédia détecte que l’un des deux flux vidéo provenant de l’encodeur externe n’est pas synchronisé. Ce type d’événement doit être utilisé comme un avertissement, car l’expérience utilisateur peut ne pas être affectée.
Microsoft.Media.LiveEventIngestHeartbeat Publié toutes les 20 secondes pour chaque piste pendant l’événement en direct. Fournit un résumé de l’intégrité d’ingestion.

Une l’encodeur a été initialement connecté, l’événement de pulsation continue d’émettre toutes les 20 secondes, que l’encodeur soit encore connecté ou non.
Microsoft.Media.LiveEventTrackDiscontinuityDetected Le serveur multimédia détecte une discontinuité dans la piste entrante.

Consultez les exemples de schémas qui suivent.

Exemples de schéma d’événement

JobStateChange

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
previousState string L’état du travail avant l’événement.
state string Le nouvel état de la tâche notifié dans cet événement. Par exemple, « Planifié : le travail est prêt à démarrer » ou « Terminé : le travail est terminé ».

Où l’état du travail peut prendre l’une des valeurs suivantes : En file d’attente, Planifié, Traitement, Terminé, Erreur, Annulé, Annulation en cours

Notes

En file d’attente est présent uniquement dans la propriété previousState, mais pas dans la propriété state.

JobScheduled, JobProcessing, JobCanceling

Pour chaque changement d’état de travail non final (par exemple, JobScheduled, JobProcessing, JobCanceling), l’exemple de schéma se présente comme suit :

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

Pour chaque changement d’état de travail final (par exemple, JobFinished, JobCanceled, JobErrored), l’exemple de schéma se présente comme suit :

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

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
outputs Array Obtient les sorties du travail.

JobOutputStateChange

L’exemple suivant montre le schéma de l’événement 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

Pour chaque changement d’état de sortie du travail (JobOutput), l’exemple de schéma se présente comme suit :

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

L’exemple de schéma ressemble à ce qui suit :

[{
 "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’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
streamId string Identificateur du flux de données ou de la connexion. L’encodeur ou le client est chargé d’ajouter cet ID dans l’URL d’ingestion.
ingestUrl string URL d’ingestion fournie par l’événement en direct.
encoderIp string Adresse IP de l’encodeur.
encoderPort string Port de l’encodeur dont provient ce flux.
resultCode string Motif de rejet de la connexion. Les codes de résultat sont répertoriés dans le tableau suivant.

Vous pouvez trouver les codes de résultat d’erreur dans Codes d’erreur d’événement en direct.

LiveEventEncoderConnected

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
streamId string Identificateur du flux de données ou de la connexion. L’encodeur ou le client est chargé d’ajouter cet ID dans l’URL d’ingestion.
ingestUrl string URL d’ingestion fournie par l’événement en direct.
encoderIp string Adresse IP de l’encodeur.
encoderPort string Port de l’encodeur dont provient ce flux.

LiveEventEncoderDisconnected

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
streamId string Identificateur du flux de données ou de la connexion. L’encodeur ou le client est chargé d’ajouter cet ID dans l’URL d’ingestion.
ingestUrl string URL d’ingestion fournie par l’événement en direct.
encoderIp string Adresse IP de l’encodeur.
encoderPort string Port de l’encodeur dont provient ce flux.
resultCode string Motif de déconnexion de l’encodeur. Il peut s’agir d’une déconnexion normale ou due à une erreur. Les codes de résultat sont répertoriés dans le tableau suivant.

Vous pouvez trouver les codes de résultat d’erreur dans Codes d’erreur d’événement en direct.

Les codes de résultat de déconnexion normale sont :

Code de résultat Description
S_OK Encodeur déconnecté avec succès.
MPE_CLIENT_TERMINATED_SESSION Encodeur déconnecté (RTMP).
MPE_CLIENT_DISCONNECTED Encodeur déconnecté (FMP4).
MPI_REST_API_CHANNEL_RESET La commande de réinitialisation du canal est reçue.
MPI_REST_API_CHANNEL_STOP La commande d’arrêt du canal est reçue.
MPI_REST_API_CHANNEL_STOP Canal en cours de maintenance.
MPI_STREAM_HIT_EOF Le flux EOF est envoyé par l’encodeur.

LiveEventIncomingDataChunkDropped

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
trackType string Type de la piste (Audio/Vidéo).
trackName string Nom de la piste.
bitrate entier Débit binaire de la piste.
timestamp string Timestamp du bloc de données supprimé.
timescale string Échelle de temps du timestamp.
resultCode string Motif de suppression du bloc de données. FragmentDrop_OverlapTimestamp ou FragmentDrop_NonIncreasingTimestamp.

LiveEventIncomingStreamReceived

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
trackType string Type de la piste (Audio/Vidéo).
trackName string Nom de la piste (fourni par l’encodeur ou, dans le cas du RTMP, généré par le serveur selon le format TypePiste_DébitBinaire).
bitrate entier Débit binaire de la piste.
ingestUrl string URL d’ingestion fournie par l’événement en direct.
encoderIp string Adresse IP de l’encodeur.
encoderPort string Port de l’encodeur dont provient ce flux.
timestamp string Premier timestamp du bloc de données reçu.
timescale string Échelle de temps dans laquelle le timestamp est représenté.

LiveEventIncomingStreamsOutOfSync

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
minLastTimestamp string Minimum des derniers timestamps parmi toutes les pistes (audio ou vidéo).
typeOfTrackWithMinLastTimestamp string Type de la piste (audio ou vidéo) avec dernier timestamp minimum.
maxLastTimestamp string Maximum de tous les timestamps parmi toutes les pistes (audio ou vidéo).
typeOfTrackWithMaxLastTimestamp string Type de la piste (audio ou vidéo) avec le dernier timestamp maximum.
timescaleOfMinLastTimestamp string Obtient l’échelle de temps dans laquelle « MinLastTimestamp » est représenté.
timescaleOfMaxLastTimestamp string Obtient l’échelle de temps dans laquelle « MaxLastTimestamp » est représenté.

LiveEventIncomingVideoStreamsOutOfSync

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
firstTimestamp string Timestamp reçu pour l’une des pistes/l’un des niveaux de qualité de type vidéo.
firstDuration string Durée du bloc de données avec le premier timestamp.
secondTimestamp string Timestamp reçu pour une autre piste/un autre niveau de qualité de type vidéo.
secondDuration string Durée du bloc de données avec un deuxième timestamp.
timescale string Échelle de temps des timestamps et de la durée.

LiveEventIngestHeartbeat

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
trackType string Type de la piste (Audio/Vidéo).
trackName string Nom de la piste (fourni par l’encodeur ou, dans le cas du RTMP, généré par le serveur selon le format TypePiste_DébitBinaire).
bitrate entier Débit binaire de la piste.
incomingBitrate entier Débit binaire calculé et basé sur des blocs de données provenant de l’encodeur.
lastTimestamp string Timestamp le plus récent reçu pour une piste dans les 20 dernières secondes.
timescale string Échelle de temps dans laquelle les timestamps sont exprimés.
overlapCount entier Nombre de blocs de données avec des timestamps qui se chevauchent au cours des 20 dernières secondes.
discontinuityCount entier Nombre de discontinuités observées dans les dernières 20 secondes.
nonIncreasingCount entier Nombre de blocs de données présentant des timestamps passés dans les dernières 20 secondes.
unexpectedBitrate bool Indique si les débits binaires attendus et réels diffèrent de plus de la valeur maximale autorisée au cours des 20 dernières secondes. La valeur est true si et seulement si incomingBitrate >= 2* bitrate OR incomingBitrate <= bitrate/2 OR IncomingBitrate = 0.
state string État de l’événement en direct.
healthy bool Indique si l’ingestion est intègre en fonction des nombres et des indicateurs. Healthy a la valeur true si overlapCount = 0 && discontinuityCount = 0 && nonIncreasingCount = 0 && unexpectedBitrate = false.
lastFragmentArrivalTime string Dernier horodatage, au format UTC, auquel un fragment est arrivé au point de terminaison de réception. Exemple de format de date : « 2020-11-11 12:12:12:888999 »
ingestDriftValue string Indique la vitesse de retard, en secondes par minute, des données audio ou vidéo entrantes au cours de la dernière minute. La valeur est supérieure à zéro si les données arrivent à l’événement en direct plus lentement que prévu au cours de la dernière minute. Elle est égale à zéro si les données sont arrivées sans retard ; et égale à « n/a » si aucune donnée audio ou vidéo n’a été reçue. Par exemple, si vous avez un encodeur de contribution qui envoie du contenu en direct, et qu’il ralentit en raison de problèmes de traitement ou d’une latence du réseau, il se peut qu’il ne soit capable de fournir que 58 secondes d’audio ou de vidéo au total sur une période d’une minute. Cela correspondrait à une dérive de 2 secondes par minute. Si l’encodeur est capable de rattraper son retard et d’envoyer l’intégralité des 60 secondes ou plus de données chaque minute, vous verrez cette valeur indiquée comme étant égale à 0. En cas de déconnexion, ou de discontinuité de l’encodeur, cette valeur peut encore afficher 0, car elle ne tient pas compte des ruptures dans les données - seulement des données qui sont retardées dans les timestamps.
transcriptionState string Cette valeur est « On » pour les pulsations de piste audio si la transcription en direct est activée ; sinon, vous verrez une chaîne vide. Cet état s’applique uniquement au tracktype « audio » pour la transcription en direct. Toutes les autres pistes auront une valeur vide.
transcriptionLanguage string Code de langue (au format BCP-47) de la langue de transcription. Par exemple, « de-de » indique Allemand (Allemagne). La valeur est vide pour les pulsations de piste vidéo ou quand la transcription en direct est désactivée.

LiveEventChannelArchiveHeartbeat

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
channelLatencyMs string Le temps en millisecondes (MS) passé par la vidéo ingérée dans le pipeline d’événements en direct avant sa publication dans le manifeste de l’TLS/DASH pour que les joueurs le téléchargent.
latencyResultCode string Code de résultat pour le calcul channelLatencyMs. S_OK indique que la réception de l’événement en direct a été reçue sans aucun problème. D’autres codes de résultats indiquent des situations qui entraînent une valeur vide pour channelLatencyMs. MPE_KEY_FRAME_INTERVAL_TOO_LARGE le code d’erreur indique que la source de la vidéo ingérée a un grand GOP (distance d’image clé) qui aurait un impact négatif sur la latence du canal. MPE_INGEST_DISCONTINUITY le code d’erreur indique que des discontinuités ont été détectées sur le flux source, ce qui peut ajouter des latences longues au canal.

LiveEventTrackDiscontinuityDetected

L’exemple suivant montre le schéma d’un événement 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"
  }
]

L’objet de données comporte les propriétés suivantes :

Propriété Type Description
trackType string Type de la piste (Audio/Vidéo).
trackName string Nom de la piste (fourni par l’encodeur ou, dans le cas du RTMP, généré par le serveur selon le format TypePiste_DébitBinaire).
bitrate entier Débit binaire de la piste.
previousTimestamp string Timestamp du fragment précédent.
newTimestamp string Timestamp du fragment actuel.
discontinuityGap string Écart entre les deux timestamps ci-dessus.
timescale string Échelle de temps dans laquelle les écarts de timestamp et de discontinuité sont représentés.

Propriétés d’événements courantes

Un événement contient les données générales suivantes :

Propriété Type Description
topic string Rubrique Event Grid. Cette propriété comporte l’ID de ressource pour le compte Media Services.
subject string Chemin d’accès à la ressource pour le canal Media Services sous le compte Media Services. La concaténation de la rubrique et de l’objet indique l’ID de ressource pour le travail.
eventType string Un des types d’événements inscrits pour cette source d’événement. Par exemple, « Microsoft.Media.JobStateChange ».
eventTime string L’heure à quelle l’événement est généré selon l’heure UTC du fournisseur.
id string Identificateur unique de l’événement.
data object Données d’événement Media Services.
dataVersion string Version du schéma de l’objet de données. Le serveur de publication définit la version du schéma.
metadataVersion string Version du schéma des métadonnées d’événement. Event Grid définit le schéma des propriétés de niveau supérieur. Event Grid fournit cette valeur.

Voir aussi