Usando a Amazon EventBridge com streaming de baixa latência IVS - Amazon Interactive Video Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando a Amazon EventBridge com streaming de baixa latência IVS

Você pode usar EventBridge a Amazon para monitorar suas transmissões do Amazon Interactive Video Service (IVS).

O Amazon IVS envia eventos de mudança sobre o status de seus streams para a Amazon. EventBridge Todos os eventos que são fornecidos são válidos. No entanto, os eventos são enviados em uma base de melhor esforço, o que significa que não há garantia de que:

  • Os eventos são entregues — Um evento designado pode ocorrer (por exemplo, o início de uma transmissão), mas é possível que o Amazon IVS não envie um evento de alteração correspondente para EventBridge. O Amazon IVS tenta entregar eventos por várias horas antes de desistir.

  • Os eventos que são entregues vão chegar em um período especificado: você pode receber eventos com até algumas horas de atraso.

  • Os eventos serão entregues em ordem: os eventos podem estar fora de ordem, especialmente se forem enviados com um curto intervalo de tempo. Por exemplo, você poderá ver a transmissão para baixo antes da transmissão para cima.

Embora seja raro que os eventos estejam ausentes, atrasados ou fora de sequência, você deve lidar com essas possibilidades se você escrever programas críticos para os negócios que dependem da ordem ou da existência de eventos de notificação.

Você pode criar EventBridge regras para qualquer um dos eventos a seguir.

Tipo de evento Evento Enviado quando …
Alteração do estado do stream do IVS Session Created Uma chave de transmissão foi usada com êxito e uma sessão de transmissão foi criada. Esse evento é acionado quando uma transmissão é iniciada, antes que o vídeo seja processado ou entregue aos visualizadores. Este evento pode ajudar a determinar se uma transmissão foi iniciada, mas não conseguiu entrar ao vivo; por exemplo, devido a uma falha de configuração ou uma violação de limite.
Alteração do estado do stream do IVS Session Ended

O codificador desconectado e o Amazon IVS não estão mais recebendo vídeo. Este evento pode ajudar você a determinar quando o codificador parou de enviar mídia.

Observação: quando o codificador se desconecta, o evento Session Ended (Sessão encerrada) pode vir antes do evento Stream End (Fim da transmissão). Isso ocorre porque pode haver um curto período de tempo após o evento Session Ended (Sessão encerrada) quando o Amazon IVS ainda está processando vídeo.

Alteração do estado do stream do IVS Início do stream Um stream está sendo processado e segmentos estão disponíveis para o visualizador assistir. Este evento indica que a transmissão de vídeo está sendo processada e pode ser assistida pelos visualizadores. Este evento pode ajudar você a determinar se uma transmissão entrou ao vivo com êxito.
Alteração do estado do stream do IVS Fim do stream Uma transmissão para de ser processada e não produz mais segmentos de vídeo para o visualizador. Este evento pode ajudar você a determinar quando a transmissão terminou e nenhum novo segmento de vídeo pode ser consumido pelos espectadores. (Veja também a nota na Sessão encerrada.)
Alteração do estado do stream do IVS Falha de stream Um stream não está sendo processado e não está disponível porque a capacidade de processamento foi excedida.
Alteração de integridade do stream de IVS Início da privação Um stream não está recebendo dados do streamer; é informado que o stream está em “privação”.
Alteração de integridade do stream de IVS Fim da privação Um stream em privação começa a receber dados do streamer e o stream está íntegro novamente.
Violação de limite do IVS Taxa de bits da ingestão A taxa de bits do stream de entrada excede o limite do Amazon IVS.
Violação de limite do IVS Resolução de entrada A resolução do stream de entrada excede o limite do Amazon IVS.
Violação de limite do IVS Transmissões simultâneas O número total de canais de streaming ao mesmo tempo excede o limite do Amazon IVS.
Violação de limite do IVS Visualizadores simultâneos O número total de visualizadores que assistem a seus canais ao mesmo tempo excede o limite do Amazon IVS.
Alteração de estado de gravação de IVS Iniciar gravação

Uma transmissão começa a ser processada e o prefixo de gravação é criado e validado. Os segmentos serão gravados no local de armazenamento configurado para o canal.

Observe que depois que uma transmissão ao vivo é iniciada e o evento Recording Start do EventBridge é emitido, algum tempo é necessário antes que os arquivos de manifesto e os segmentos de vídeo sejam gravados no bucket do S3 configurado para o canal. Recomendamos que você reproduza ou processe streams gravados somente após o evento Fim da gravação ser enviado.

Alteração de estado de gravação de IVS Término da gravação Um stream termina e a gravação é interrompida para este canal.
Alteração de estado de gravação de IVS Falha ao iniciar gravação Um stream é iniciado, mas a gravação falha ao iniciar devido a erros (por exemplo, o bucket S3 não existe ou não está na região correta). Essa transmissão ao vivo não é gravada.
Alteração de estado de gravação de IVS Falha ao final do registro A gravação é encerrada com falha devido a erros encontrados durante a gravação (por exemplo, se a tentativa de escrever uma playlist primária falhou). Alguns objetos ainda podem ser gravados no local de armazenamento configurado.

Observação sobre IDs de transmissão: o campo stream_id (em muitos eventos) é um identificador de transmissão exclusivo atribuído toda vez que um canal entra no ar ao vivo. Para um determinado canal, cada stream ao vivo tem um novo stream_id. Portanto, cada ARN de canal pode ter muitos IDs de stream correspondentes. Os IDs de stream permitem que os clientes diferenciem sessões de stream diferentes no mesmo canal.

Observação sobre a latência de alguns eventos: as configurações do codificador, especialmente o intervalo IDR/quadro-chave, afetam o tempo de inicialização da transmissão e a latência dos eventos relacionados (início da transmissão e início da gravação). Um intervalo de quadro-chave mais curto diminui essa latência. Consulte “Como reduzir a latência” em Configuração de streaming do Amazon IVS para obter informações sobre como configurar o IDR/Keyframe.

Criação de EventBridge regras da Amazon para o Amazon IVS

Você pode criar uma regra do que é acionado em um evento emitido pelo Amazon IVS. Siga as etapas em Criar uma regra na Amazon EventBridge no Guia do EventBridge usuário da Amazon. Ao selecionar um serviço, escolha Interactive Video Service (IVS).

Exemplos: alteração do estado da transmissão

Início da transmissão: este evento é enviado quando uma transmissão está sendo processada e segmentos estão disponíveis para o 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" } }

Fim da transmissão: este evento é enviado quando uma transmissão para de ser processada e não produz mais segmentos de vídeo para o 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" } }

Falha na transmissão: este evento é enviado quando uma transmissão não está sendo processada e não está disponível porque a capacidade de processamento foi excedida.

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

Exemplo: alteração da integridade da transmissão

Início da privação: este evento é enviado quando uma transmissão não está recebendo dados do transmissor; é informado que a transmissão está em “privação”.

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

Fim da privação: este evento é enviado quando uma transmissão em privação começa a receber dados do transmissor e a transmissão fica íntegra novamente.

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

Exemplos: violação de limite

Todos os eventos de violação de limite incluem o nome do limite que é violado, o valor do limite e o número pelo qual o limite foi excedido (valor na violação subtraído pelo limite).

Ingestão de taxas de bits: este evento é enviado quando a taxa de bits da transmissão de entrada excede o limite do 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" } }

Resolução da ingestão: este evento é enviado quando a resolução da transmissão de entrada (total de pixels ou pixels por borda) excede os limites do Amazon IVS.

Total máximo de pixels excedido:

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

Máximo de pixels por borda excedido:

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

Transmissões simultâneas: este evento é enviado quando o número total de canais de fazendo transmissão ao mesmo tempo excede o limite do 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 simultâneos: este evento é enviado quando o número total de espectadores assistindo a seus canais ao mesmo tempo excede o limite do 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" } }

Exemplo: alteração do estado de gravação

Para todos os eventos de mudança de estado de gravação, o caminho de nível superior em que todos os objetos dessa transmissão ao vivo são armazenados érecording_s3_key_prefix. No caso de falhas, o motivo da falha está em recording_status_reason. O campo recording_duration_ms é o número de milissegundos de duração da gravação.

Iniciar gravação: este evento é enviado quando uma transmissão começa a ser processada e segmentos estão sendo gravados no local de armazenamento configurado para o 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" } }

Fim da gravação: este evento é enviado quando uma transmissão termina e a gravação é interrompida para esse 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"] } }

Falha no início do evento: este evento é enviado quando uma transmissão é iniciada, mas a gravação falha ao iniciar devido a erros (por exemplo, o bucket S3 não existe ou não está na região correta). Essa transmissão ao vivo não é gravada.

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

Falha no fim da gravação: este evento é enviado quando a gravação termina com falha devido a erros encontrados durante a gravação. Alguns objetos ainda podem ser gravados no local de armazenamento configurado.

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