Utilizzo di Amazon EventBridge con streaming IVS a bassa latenza - Amazon Interactive Video Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di Amazon EventBridge con streaming IVS a bassa latenza

Puoi usare Amazon EventBridge per monitorare i tuoi stream di Amazon Interactive Video Service (IVS).

Amazon IVS invia ad Amazon eventi di modifica sullo stato dei tuoi stream. EventBridge Tutti gli eventi che vengono consegnati sono validi. Tuttavia, gli eventi vengono inviati sulla base del miglior tentativo il che significa che non vi è alcuna garanzia che:

  • Gli eventi vengono consegnati: può verificarsi un evento designato (ad esempio, l'avvio di uno stream) ma è possibile che Amazon IVS non invii un evento di modifica corrispondente a EventBridge. Amazon IVS tenta di consegnare gli eventi per diverse ore prima di smettere.

  • Gli eventi che vengono consegnati arriveranno in un periodo di tempo specificato: la ricezione di eventi è possibile fino a poche ore prima.

  • Gli eventi vengono consegnati in ordine; gli eventi possono non essere ordinati, soprattutto se vengono inviati entro un breve periodo di tempo l'uno dall'altro. Ad esempio, è possibile che sia visualizzato lo streaming verso il basso prima dello streaming verso l'alto.

Sebbene sia raro che gli eventi siano mancanti, in ritardo o fuori sequenza, è consigliabile essere pronti a queste possibilità se si scrivono programmi business-critical che dipendono dall'ordine o dall'esistenza degli eventi di notifica.

Puoi creare EventBridge regole per uno qualsiasi dei seguenti eventi.

Tipo di evento Evento Inviato quando…
Modifica dello stato del flusso IVS Sessione creata Una chiave di streaming del canale è stata usata con successo ed è stata creata una sessione di streaming. Questo evento si attiva quando viene avviato uno streaming, prima che il video venga elaborato o trasmesso agli spettatori. Questo evento aiuta a determinare se uno streaming è stato avviato ma non ha funzionato, ad esempio a causa di errori di configurazione o violazione di un limite.
Modifica dello stato del flusso IVS Sessione terminata

L'encoder disconnesso e Amazon IVS non riceve più video. Questo evento aiuta a determinare quando il codificatore ha smesso di inviare file multimediali.

Nota: quando l'encoder si disconnette, l'evento Session Ended (Sessione terminata) potrebbe venire prima dell'evento Stream End (Fine dello streaming). Questo perché potrebbe esserci un breve periodo di tempo dopo l'evento Sessione terminata quando Amazon IVS sta ancora elaborando video.

Modifica dello stato del flusso IVS Avvio dello streaming Un flusso è in fase di elaborazione e i segmenti sono disponibili per lo spettatore. Questo evento indica che lo streaming video è in fase di elaborazione e può essere guardato dagli spettatori. Questo evento aiuta a determinare se uno streaming è andato in diretta con successo.
Modifica dello stato del flusso IVS Fine dello streaming L'elaborazione del flusso viene interrotta e non sono prodotti più segmenti video per lo spettatore. Questo evento aiuta a determinare quando lo streaming è terminato e nessun nuovo segmento video può essere utilizzato dagli spettatori. Vedere anche la nota in Session Ended (Sessione terminata).
Modifica dello stato del flusso IVS Errore di streaming Un flusso non è in fase di elaborazione e non è disponibile perché è stata superata la capacità di elaborazione.
Modifica dell'integrità del flusso IVS Avvio di un uso eccessivo Un flusso non riceve dati dallo streamer; si dice che il flusso ha "fame".
Modifica dell'integrità del flusso IVS Fine dell'uso eccessivo Un flusso affamato inizia a ricevere dati dallo streamer e quindi torna integro.
Violazione dei limiti IVS Bitrate di acquisizione Il bitrate del flusso in entrata supera il limite Amazon IVS.
Violazione dei limiti IVS Risoluzione dell'acquisizione La risoluzione del flusso in entrata supera il limite di Amazon IVS.
Violazione dei limiti IVS Trasmissioni simultanee Il numero totale di canali in streaming allo stesso tempo supera il limite di Amazon IVS.
Violazione dei limiti IVS Spettatori simultanei Il numero totale di spettatori che guardano i canali allo stesso tempo supera il limite di Amazon IVS.
Modifica dello stato di registrazione IVS Avvio della registrazione

Uno streaming inizia l'elaborazione e il prefisso di registrazione viene creato e convalidato. I segmenti verranno scritti nella posizione di archiviazione configurata per il canale.

Tenere presente che dopo l'avvio di un live streaming e l'emissione dell'evento Avvio della registrazione, prima che vengano scritti i file manifest e i segmenti video nel bucket S3 configurato per il canale è possibile che passi del tempo. Consigliamo di riprodurre o elaborare flussi registrati solo dopo l'invio dell'evento di fine registrazione.

Modifica dello stato di registrazione IVS Fine della registrazione Un flusso termina e la registrazione si interrompe per questo canale.
Modifica dello stato di registrazione IVS Errore di avvio della registrazione Un flusso inizia ma la registrazione non viene avviata a causa di errori (ad esempio, il bucket S3 non esiste o non si trova nella regione corretta). Questo live streaming non viene registrato.
Modifica dello stato di registrazione IVS Errore di fine della registrazione La registrazione termina con un errore, a causa di errori riscontrati durante il processo (ad esempio, se il tentativo di scrivere una playlist master non va a buon fine). Alcuni oggetti possono ancora essere scritti nel percorso di storage configurato.

Nota sugli ID flusso: il campo stream_id (in molti eventi) è un identificatore di flusso univoco assegnato ogni volta che un canale è in diretta. Per un determinato canale, ogni live streaming ha un nuovo stream_id. Quindi, ogni ARN del canale può avere più ID flusso corrispondenti. Gli ID flusso consentono ai clienti di distinguere diverse sessioni di streaming sullo stesso canale.

Nota sulla latenza di alcuni eventi: le impostazioni di configurazione del codificatore, in particolare l'intervallo IDR/fotogramma, influiscono sulla tempistica di avvio del flusso e sulla latenza degli eventi correlati (avvio del flusso e avvio della registrazione). Un intervallo di fotogrammi chiave più breve riduce questa latenza. Consultare "Riduzione della latenza" in Configurazione dello streaming di Amazon IVS per informazioni sulla configurazione di IDR/Keyframe.

Creazione di EventBridge regole Amazon per Amazon IVS

È possibile creare una regola che si attiva con un evento generato da Amazon IVS. Segui la procedura descritta in Creare una regola in Amazon EventBridge nella Amazon EventBridge User Guide. Quando si seleziona un servizio, seleziona Interactive Video Service (IVS).

Esempi: modifica dello stato del flusso

Avvio del flusso: questo evento viene inviato quando un flusso è in fase di elaborazione e i segmenti sono disponibili per il visualizzatore.

{ "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 (Fine dello streaming): questo evento viene inviato quando l'elaborazione del flusso viene interrotta e non sono prodotti più segmenti video per lo spettatore.

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

Errore del flusso: questo evento viene inviato quando un flusso non è in fase di elaborazione e non è disponibile perché è stata superata la capacità di elaborazione.

{ "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." } }

Esempi: modifica dell'integrità del flusso

Avvio di un uso eccessivo: questo evento viene inviato quando un flusso non riceve dati dallo streamer; si dice che il flusso è "affamato".

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

Fine dell'uso eccessivo: questo evento viene inviato quando un flusso affamato inizia a ricevere dati dallo streamer e quindi torna integro.

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

Esempi: utilizzo fuori limite

Tutti gli eventi di violazione dei limiti includono il nome del limite violato, il valore del limite e il numero di quanto è stato superato il limite (valore alla violazione sottratto dal limite).

Bitrate di acquisizione: questo evento viene inviato quando il bitrate del flusso in entrata supera il limite di 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" } }

Risoluzione dell'acquisizione: questo evento viene inviato quando la risoluzione del flusso in entrata (pixel totali o pixel per edge) supera i limiti di Amazon IVS.

Numero massimo di pixel totali superato:

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

Numero massimo di pixel per bordo superato:

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

Trasmissioni simultanee: questo evento viene inviato quando il numero totale di canali in streaming allo stesso tempo supera il limite di 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" } }

Visualizzatori simultanei: questo evento viene inviato quando il numero totale di spettatori che guardano i canali allo stesso tempo supera il limite di 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" } }

Esempi: modifica dello stato di registrazione

Per tutti gli eventi di modifica dello stato di registrazione, il percorso di primo livello in cui sono archiviati tutti gli oggetti di questo live streaming è. recording_s3_key_prefix In caso di errore, il motivo dell'errore è riportato in recording_status_reason. Il campo recording_duration_ms è il numero di millisecondi della durata della registrazione.

Avvio della registrazione: questo evento viene inviato quando un flusso inizia a essere elaborato e i segmenti vengono scritti nella posizione di storage configurata per il canale.

{ "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 (Fine della registrazione): questo evento viene inviato quando un flusso termina e la registrazione si interrompe per questo canale.

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

Errore di avvio della registrazione: questo evento viene inviato quando un flusso inizia ma la registrazione non viene avviata a causa di errori (ad esempio, il bucket S3 non esiste o non si trova nella regione corretta). Questo live streaming non viene registrato.

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

Errore di fine della registrazione: questo evento viene inviato quando la registrazione termina con un errore, a causa di problemi riscontrati durante il processo. Alcuni oggetti possono ancora essere scritti nel percorso di storage configurato.

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