Uso de Amazon EventBridge con la transmisión de baja latencia de IVS - Amazon Interactive Video Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de Amazon EventBridge con la transmisión de baja latencia de IVS

Puedes usar Amazon EventBridge para monitorear tus transmisiones de Amazon Interactive Video Service (IVS).

Amazon IVS envía a Amazon EventBridge los cambios relacionados con el estado de sus transmisiones. Todos los eventos que se entregan son válidos. Sin embargo, los eventos se envían en la medida de lo posible, lo que significa que no hay garantía de que:

  • Los eventos se entregan: puede producirse un evento designado (por ejemplo, el inicio de una transmisión), pero es posible que Amazon IVS no envíe el evento de cambio correspondiente a EventBridge. Amazon IVS intenta entregar eventos durante varias horas antes de darse por vencido.

  • Los eventos que se entregan llegarán en un periodo de tiempo especificado: es posible que reciba eventos de hasta unas pocas horas de antigüedad.

  • Los eventos se entregan en orden: los eventos pueden estar desordenados, especialmente si se envían con poco tiempo de diferencia. Por ejemplo, podría ver la transmisión de forma descendente antes de verla de forma ascendente.

Si bien es raro que los eventos falten, se retrasen o estén fuera de secuencia, debe gestionar estas posibilidades si escribe programas críticos para el negocio que dependen del orden o la existencia de los eventos de notificación.

Puede crear EventBridge reglas para cualquiera de los siguientes eventos.

Tipo de evento Evento Enviado cuando…
Cambio de condición de transmisión de IVS Sesión creada Se utilizó una clave de transmisión de canal correctamente y se creó una sesión de transmisión. Este evento se activa cuando se inicia una transmisión, antes de que el video se procese o se entregue a los espectadores. Este evento puede ayudar a determinar si se inició una transmisión pero no se activó; por ejemplo, debido a errores de configuración o vulneración de límites.
Cambio de condición de transmisión de IVS Sesión finalizada

El codificador se desconectó y Amazon IVS ya no recibe video. Este evento puede ayudar a determinar cuándo el codificador dejó de enviar medios.

Nota: Cuando el codificador se desconecta, el evento Sesión finalizada puede aparecer antes del evento Finalización de la transmisión. Esto se debe a que puede haber un breve tiempo después del evento Sesión finalizada cuando Amazon IVS sigue procesando video.

Cambio de condición de transmisión de IVS Inicio de la transmisión Se está procesando una transmisión y los segmentos están disponibles para que el espectador los vea. Este evento indica que la transmisión de video se está procesando y que los espectadores pueden verlo. Este evento puede ayudar a determinar si una transmisión se activó correctamente.
Cambio de condición de transmisión de IVS Fin de la transmisión Una transmisión deja de procesarse y ya no produce segmentos de video para el espectador. Este evento puede ayudar a determinar cuándo finalizó la transmisión y los espectadores no pueden utilizar nuevos segmentos de video. (Consulte también la nota en Sesión finalizada).
Cambio de condición de transmisión de IVS Error de la transmisión Una transmisión no se está procesando y no está disponible porque se ha superado la capacidad de procesamiento.
Cambio de estado de transmisión de IVS Inicio de la inanición Una transmisión no recibe datos del transmisor; se dice que la transmisión está en “inanición”.
Cambio de estado de transmisión de IVS Fin de la inanición Una transmisión en inanición comienza a recibir datos del transmisor y la transmisión tiene un buen estado de nuevo.
Violación del límite de IVS Velocidad de bits de incorporación La velocidad de bits de la transmisión entrante supera el límite de Amazon IVS.
Violación del límite de IVS Resolución de incorporación La resolución de la transmisión entrante supera el límite de Amazon IVS.
Violación del límite de IVS Transmisiones simultáneas El número total de canales que se transmiten de forma simultánea supera el límite de Amazon IVS.
Violación del límite de IVS Espectadores simultáneos El número total de espectadores que ven sus canales a la vez supera el límite de Amazon IVS.
Cambio de estado de grabación de IVS Inicio de la grabación

Comienza a procesarse una transmisión, y se crea y valida el prefijo de grabación. Los segmentos se escriben en la ubicación de almacenamiento configurada para el canal.

Tenga en cuenta que, una vez que se inicia una transmisión en directo y se emite el evento de Inicio de grabación, se tarda un poco en escribir los archivos de manifiesto y los segmentos de video en el bucket de S3 que se ha configurado para el canal. Le recomendamos que reproduzca o procese transmisiones grabadas solo después de que se envíe el evento Recording End.

Cambio de estado de grabación de IVS Fin de la grabación Una transmisión finaliza y la grabación se detiene para este canal.
Cambio de estado de grabación de IVS Error al iniciar la grabación Se inicia una transmisión, pero la grabación no se inicia debido a errores (por ejemplo, el bucket de S3 no existe o no está en la región correcta). Esta transmisión en directo no se graba.
Cambio de estado de grabación de IVS Error al finalizar la grabación La grabación termina con un error debido a fallas que se encuentran durante el proceso (por ejemplo, si se produce un error al intentar escribir una lista de reproducción maestra). Aún pueden escribirse algunos objetos en la ubicación de almacenamiento configurada.

Nota sobre los ID de transmisión: El campo stream_id (en muchos eventos) es un identificador de transmisión único asignado cada vez que un canal entra en directo. Para un canal dado, cada transmisión en directo tiene un stream_id nuevo. Por lo tanto, cada ARN de canal puede tener muchos ID de transmisión correspondientes. Los ID de transmisión permiten a los clientes distinguir diferentes sesiones de transmisión en el mismo canal.

Nota sobre la latencia de algunos eventos: Los ajustes de la configuración del codificador, especialmente el IDR o intervalo de fotogramas, afectan al tiempo de startup de la transmisión y la latencia de los eventos relacionados (Inicio de la transmisión e Inicio de la grabación). Un intervalo de fotogramas clave más corto disminuye esta latencia. Consulte Reducción de la latencia en la Configuración de transmisión de Amazon IVS para obtener información sobre cómo configurar IDR/Keyframe.

Creación de Amazon EventBridge Rules para Amazon IVS

Puede crear una regla que se active en función de un evento que emita Amazon IVS. Sigue los pasos de Crear una regla en Amazon EventBridge en la Guía del EventBridge usuario de Amazon. Cuando seleccione un servicio, elija Interactive Video Service (IVS).

Ejemplos: cambio del estado de la transmisión

Inicio de la transmisión: este evento se envía cuando se procesa una transmisión y hay segmentos disponibles para el espectador.

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

Finalización de la transmisión: este evento se envía cuando una transmisión deja de procesarse y ya no produce segmentos de video para el espectador.

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

Error de la transmisión: este evento se envía cuando una transmisión no se está procesando y no está disponible porque se ha superado la capacidad de procesamiento.

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

Ejemplos: cambio del estado de la transmisión

Inicio de la inanición: este evento se envía cuando una transmisión no está recibiendo datos del transmisor; se dice que la transmisión está en “inanición”.

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

Final de la inanición: este evento se envía cuando una transmisión en inanición comienza a recibir datos del transmisor y vuelve a tener un buen estado.

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

Ejemplos: violación del límite

Todos los eventos de violación de límites incluyen el nombre del límite que se ha infringido, el valor del límite y el número por el que se ha superado (valor de la violación restado por el límite).

Velocidad de bits de incorporación: este evento se envía cuando la velocidad de bits de la transmisión entrante supera el límite de 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" } }

Resolución de incorporación: este evento se envía cuando la resolución de la transmisión entrante (píxeles totales o por borde) supera los límites de Amazon IVS.

Se superó el máximo de píxeles totales:

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

Se superó el máximo de píxeles por borde:

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

Emisiones concurrentes: este evento se envía cuando el número total de canales que se transmiten en forma simultánea supera el límite de 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" } }

Espectadores concurrentes: este evento se envía cuando el número total de espectadores que ven sus canales a la vez supera el límite de 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" } }

Ejemplos: cambio del estado de grabación

Para todos los eventos de cambio de estado de grabación, la ruta de nivel superior en la que se almacenan todos los objetos de esta transmisión en directo es. recording_s3_key_prefix En caso de errores, la razón de la falla está en recording_status_reason. El campo recording_duration_ms es el número de milisegundos de duración de la grabación.

Inicio de la grabación: este evento se envía cuando una transmisión comienza a procesarse y los segmentos se escriben en la ubicación de almacenamiento configurada para el 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" } }

Finalización de la grabación: este evento se envía cuando termina una transmisión y la grabación se detiene para este 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"] } }

Error del inicio de la grabación: este evento se envía cuando se inicia una transmisión, pero la grabación no se inicia debido a errores (por ejemplo, el bucket de S3 no existe o no está en la región correcta). Esta transmisión en directo no se graba.

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

Error de la finalización de la grabación: este evento se envía cuando la grabación termina con un error, debido a fallas que se encuentran durante la grabación. Aún pueden escribirse algunos objetos en la ubicación de almacenamiento configurada.

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