Utiliser Amazon EventBridge avec le streaming à faible latence IVS - Amazon Interactive Video Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser Amazon EventBridge avec le streaming à faible latence IVS

Vous pouvez utiliser Amazon EventBridge pour surveiller vos flux Amazon Interactive Video Service (IVS).

Amazon IVS envoie à Amazon EventBridge des événements de modification concernant le statut de vos flux. Tous les événements fournis sont valides. Cependant, les événements sont envoyés sur la base du meilleur effort, ce qui signifie qu’il n’y a aucune garantie que :

  • Les événements sont diffusés : un événement spécifique peut se produire (par exemple, le démarrage d'un stream), mais il est possible qu'Amazon IVS n'envoie pas d'événement de changement correspondant à EventBridge. Amazon IVS essaie de livrer des événements pendant plusieurs heures avant d’abandonner.

  • Les événements qui sont livrés arriveront dans un délai spécifié : vous pouvez recevoir des événements datant de quelques heures.

  • Les événements sont livrés dans l’ordre : les événements peuvent être envoyés dans le désordre, surtout s’ils sont envoyés à peu de temps d’intervalle. Par exemple, vous pouvez voir le flux vers le bas avant le flux vers le haut.

Bien qu’il soit rare que des événements soient manquants, en retard ou en désordre, vous devez prendre en compte ces éventualités si vous écrivez des programmes stratégiques qui dépendent de l’ordre ou de l’existence des événements de notification.

Vous pouvez créer EventBridge des règles pour chacun des événements suivants.

Type d’événement Événement Envoyé lorsque …
IVS Stream State Change Session Created Une clé de flux de canal a bien été utilisée et une session de streaming a été créée. Cet événement se déclenche lorsqu’un flux de streaming est lancé, avant que la vidéo ne soit traitée ou diffusée auprès des spectateurs. Cet événement peut vous permettre de déterminer si un flux a été initié, mais n’a pas pu être mis en ligne, par exemple en raison d’une mauvaise configuration ou d’une utilisation hors limites.
IVS Stream State Change Session Ended

L’encodeur s’est déconnecté et Amazon IVS ne reçoit plus de vidéo. Cet événement peut vous aider à déterminer quand l’encodeur a cessé d’envoyer du contenu multimédia.

Remarque : lorsque l’encodeur se déconnecte, l’événement Session Ended (Session terminée) peut survenir avant l’événement Stream End (Fin de flux). Cela est dû au fait qu’il peut y avoir une courte période après l’événement Session Ended (Session terminée) pendant laquelle Amazon IVS traite toujours la vidéo.

IVS Stream State Change Stream Start Un flux est en cours de traitement et des segments peuvent être affichés par l’utilisateur. Cet événement indique que le flux de streaming vidéo est en cours de traitement et peut être regardé par les utilisateurs. Cet événement peut vous permettre de déterminer si un flux a bien été mis en ligne.
IVS Stream State Change Stream End Un flux cesse d’être traité et ne produit plus de segments vidéo pour l’utilisateur. Cet événement peut vous aider à déterminer quand le flux s’est terminé et qu’aucun nouveau segment vidéo ne peut être consommé par les utilisateurs. (Consultez également la note dans Session Ended (Session terminée)).
IVS Stream State Change Stream Failure Un flux n’est pas en cours de traitement et n’est pas disponible parce que la capacité de traitement a été dépassée.
IVS Stream Health Change Starvation Start Un flux ne reçoit pas de données du streamer ; il est alors en « pénurie ».
IVS Stream Health Change Starvation End Un flux en pénurie commence à recevoir des données du streamer, ce qui le rend à nouveau sain.
IVS Limit Breach Ingest Bitrate Le débit binaire du flux entrant dépasse la limite d’Amazon IVS.
IVS Limit Breach Ingest Resolution La résolution du flux entrant dépasse la limite d’Amazon IVS.
IVS Limit Breach Concurrent Broadcasts Le nombre total de canaux diffusés simultanément dépasse la limite d’Amazon IVS.
IVS Limit Breach Concurrent Viewers Le nombre total d’utilisateurs qui regardent vos canaux en même temps dépasse la limite d’Amazon IVS.
IVS Recording State Change Recording Start

Le traitement d’un flux de streaming commence, et le préfixe d’enregistrement est créé et validé. Les segments seront écrits dans l’emplacement de stockage configuré pour le canal.

Notez qu’une fois qu’un flux en direct démarre et que l’événement Recording Start est émis, il faut un peu de temps avant que les fichiers manifestes et les segments vidéo soient écrits dans le compartiment S3 configuré pour le canal. Nous vous recommandons de lire ou de traiter les flux enregistrés uniquement après l’envoi de l’événement Recording End.

IVS Recording State Change Recording End Un flux se termine et l’enregistrement s’arrête pour ce canal.
IVS Recording State Change Recording Start Failure Un flux démarre, mais l’enregistrement ne démarre pas en raison d’erreurs (par exemple, le compartiment S3 n’existe pas ou n’est pas dans la bonne région). Ce flux en direct n’est pas enregistré.
IVS Recording State Change Recording End Failure L’enregistrement se termine par un échec, en raison d’erreurs rencontrées lors de l’enregistrement (par exemple, si la tentative d’écriture d’une liste de lecture principale échoue). Certains objets peuvent toujours être écrits dans l’emplacement de stockage configuré.

Remarque concernant les ID de flux : le champ stream_id (dans de nombreux événements) est un identifiant de flux unique affecté chaque fois qu’un canal passe en direct. Pour un canal donné, chaque flux en direct a un nouveau stream_id. Par conséquent, chaque ARN de canal peut avoir de nombreux ID de flux correspondants. Les ID de flux permettent aux clients de distinguer différentes sessions de flux sur le même canal.

Remarque concernant la latence de certains événements : les paramètres de configuration de l’encodeur, en particulier l’intervalle d’images ID/clés, affectent l’heure du démarrage du flux et la latence des événements associés (Stream Start et Recording Start). Un intervalle d’images clés plus court réduit cette latence. Voir « Réduire la latence » sous Configuration de streaming Amazon IVS pour plus d’informations sur la configuration de IDR/Keyframe

Création de EventBridge règles Amazon pour Amazon IVS

Vous pouvez créer une règle qui se déclenche sur un événement émis par Amazon IVS. Suivez les étapes décrites dans la section Créer une règle dans Amazon EventBridge dans le guide de EventBridge l'utilisateur Amazon. Lorsque vous devez sélectionner un service, choisissez Interactive Video Service (IVS).

Exemples : Stream State Change

Stream Start : cet événement est envoyé lorsqu’un flux est en cours de traitement et que des segments peuvent être affichés par l’utilisateur.

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Stream Start", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }

Stream End : (Fin de flux) cet événement est envoyé lorsqu’un flux cesse d’être traité et ne produit plus de segments vidéo pour l’utilisateur.

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Stream End", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }

Stream Failure : cet événement est envoyé lorsqu’un flux n’est pas en cours de traitement et n’est pas disponible parce que la capacité de traitement a été dépassée.

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Stream Failure", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "reason": "Transcode capacity exceeded. Please try again." } }

Exemples : Stream Health Change

Starvation Start : cet événement est envoyé lorsqu’un flux ne reçoit pas de données du streamer ; il est alors en « pénurie ».

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream Health Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Starvation Start", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }

Starvation End : cet événement est envoyé lorsqu’un flux en pénurie commence à recevoir des données du streamer, ce qui le rend à nouveau sain.

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream Health Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "event_name": "Starvation End", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }

Exemples : Limit Breach

Tous les événements de violation de limite incluent le nom de la limite qui est violée, la valeur de la limite et le nombre duquel la limite est dépassée (valeur lors de la violation soustraite par la limite).

Ingest Bitrate : cet événement est envoyé lorsque le débit binaire du flux entrant dépasse la limite d’Amazon IVS.

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "limit_name": "Ingest Bitrate", "limit_value": 1234, "exceeded_by": 3, "limit_unit": "bits per second", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }

Ingest Resolution : cet événement est envoyé lorsque la résolution du flux entrant (nombre total de pixels ou de pixels par périphérie) dépasse les limites d’Amazon IVS.

Nombre maximal de pixels dépassé :

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890" ], "detail": { "limit_name": "Ingest Resolution", "limit_value": 495000, "exceeded_by": 426600, "limit_unit": "total pixels", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }

Nombre maximal de pixels par périphérie dépassé :

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:channel/12345678-1a23-4567-a1bc-1a2b34567890"TBD ], "detail": { "limit_name": "Ingest Resolution", "limit_value": 855, "exceeded_by": 45, "limit_unit": "pixels per edge", "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn" } }

Concurrent Broadcasts : cet événement est envoyé lorsque le nombre total de canaux diffusés en même temps dépasse la limite d’Amazon IVS.

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [], "detail": { "limit_name": "Concurrent Broadcasts", "limit_value": 2, "exceeded_by": 3, "limit_unit": "active streams" } }

Concurrent Viewers : cet événement est envoyé lorsque le nombre total d’utilisateurs qui regardent vos canaux en même temps dépasse la limite d’Amazon IVS.

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Limit Breach", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [], "detail": { "limit_name": "Concurrent Viewers", "limit_value": 10, "exceeded_by": 11, "limit_unit": "viewers" } }

Exemple : Recording State Change

Pour tous les événements de changement d'état d'enregistrement, le chemin de niveau supérieur où sont stockés tous les objets de ce flux en direct est recording_s3_key_prefix le suivant. En cas d’échec, la raison de l’échec est en recording_status_reason. Le champ recording_duration_ms est le nombre de millisecondes de durée d’enregistrement.

Recording Start : cet événement est envoyé lorsqu’un flux commence à être traité et que des segments sont en cours d’écriture dans l’emplacement de stockage configuré pour le canal.

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:channel/AbCdef1G2hij" ], "detail": { "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "recording_status": "Recording Start", "recording_status_reason": "", "recording_s3_bucket_name": "r2s3-dev-channel-1-recordings", "recording_s3_key_prefix": "ivs/v1/123456789012/AbCdef1G2hij/2020/6/23/20/12/j8Z9O91ndcVs", "recording_duration_ms": 0, "recording_session_id": "a6RfV23ES97iyfoQ" } }

Recording End : cet événement est envoyé lorsqu’un flux se termine et que l’enregistrement s’arrête pour ce canal.

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-24T07:51:32Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:channel/AbCdef1G2hij" ], "detail": { "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "recording_status": "Recording End", "recording_status_reason": "", "recording_s3_bucket_name": "r2s3-dev-channel-1-recordings", "recording_s3_key_prefix": "ivs/v1/123456789012/AbCdef1G2hij/2020/6/23/20/12/j8Z9O91ndcVs", "recording_duration_ms": 99370264, "recording_session_id": "a6RfV23ES97iyfoQ", "recording_session_stream_ids": ["st-254sopYUvi6F78ghpO9vn0A", "st-1A2b3c4D5e6F78ghij9Klmn"] } }

Recording Start Failure : cet événement est envoyé lorsqu’un flux démarre, mais que l’enregistrement ne démarre pas en raison d’erreurs (par exemple, le compartiment S3 n’existe pas ou n’est pas dans la bonne région). Ce flux en direct n’est pas enregistré.

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:channel/AbCdef1G2hij" ], "detail": { "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "recording_status": "Recording Start Failure", "recording_status_reason": "ValidationException", "recording_s3_bucket_name": "r2s3-dev-channel-1-recordings", "recording_s3_key_prefix": "", "recording_duration_ms": 0, "recording_session_id": "a6RfV23ES97iyfoQ" } }

Recording End Failure : cet événement est envoyé lorsque l’enregistrement se termine par un échec en raison d’erreurs rencontrées lors de l’enregistrement. Certains objets peuvent toujours être écrits dans l’emplacement de stockage configuré.

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-24T07:51:32Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456a7-ab1c-2d34-e5f6-1a2b3c4d5678" ], "detail": { "channel_name": "Your Channel", "stream_id": "st-1A2b3c4D5e6F78ghij9Klmn", "recording_status": "Recording End Failure", "recording_status_reason": "InternalServerException", "recording_s3_bucket_name": "r2s3-dev-channel-1-recordings", "recording_s3_key_prefix": "ivs/v1/123456789012/AbCdef1G2hij/2020/6/23/20/12/j8Z9O91ndcVs", "recording_duration_ms": 0, "recording_session_id": "a6RfV23ES97iyfoQ" } }