Conceitos básicos sobre Composição do servidor do IVS - Amazon IVS

Conceitos básicos sobre Composição do servidor do IVS

Este documento descreve as etapas envolvidas ao começar a usar a composição do servidor do IVS.

Pré-requisitos

Para usar a composição do servidor, você deve ter um palco com publicadores ativos e usar um canal do IVS e/ou um bucket do S3 como destino da composição. Abaixo, descrevemos um possível fluxo de trabalho que usa eventos do EventBridge para iniciar uma composição que transmite o palco para um canal do IVS quando um participante publica. Como alternativa, você pode iniciar e interromper as composições com base na lógica da sua própria aplicação. Consulte Gravação composta para ver outro exemplo que mostra o uso da composição do servidor para gravar um palco diretamente em um bucket do S3.

  1. Crie um canal do IVS. Consulte Conceitos básicos do streaming de baixa latência do Amazon IVS.

  2. Crie um palco do IVS e tokens de participante para cada publicador.

  3. Crie um EncoderConfiguration.

  4. Entre no palco e publique nele. (Consulte as seções “Publicação e inscrição” dos guias de SDK de transmissão de streaming em tempo real: Web, Android e iOS.)

  5. Quando você receber um evento do EventBridge publicado pelo participante, chame StartComposition com a configuração de layout desejada.

  6. Aguarde alguns segundos e veja a visualização composta na reprodução do canal.

Fluxo de trabalho de composição do servidor que usa eventos do EventBridge para iniciar uma composição quando um participante publica.

Obs.: uma composição será desligada automaticamente após 60 segundos de inatividade dos participantes do publicador no palco. Nesse ponto, a composição será encerrada e passará para um estado STOPPED. Uma composição será excluída automaticamente após alguns minutos no estado STOPPED.

Instruções da CLI

Usar a AWS CLI é uma opção avançada e exige que você baixe e configure a CLI em sua máquina primeiro. Para obter mais detalhes, consulte o Guia do usuário da Interface de Linhas de Comando da AWS.

Agora é possível usar a CLI para criar e gerenciar recursos. As operações da composição estão no namespace ivs-realtime.

Criar o recurso EncoderConfiguration

Um objeto EncoderConfiguration permite que você personalize o formato do vídeo gerado (altura, largura, taxa de bits e outros parâmetros de streaming). Você pode reutilizar um EncoderConfiguration sempre que chamar a operação de composição, conforme explicado na etapa seguinte.

O comando abaixo cria um recurso EncoderConfiguration que configura parâmetros de composição de vídeo do servidor, como taxa de bits, taxa de quadros e resolução do vídeo:

aws ivs-realtime create-encoder-configuration --name "MyEncoderConfig" --video "bitrate=2500000,height=720,width=1280,framerate=30"

A resposta é:

{ "encoderConfiguration": { "arn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/9W59OBY2M8s4", "name": "MyEncoderConfig", "tags": {}, "video": { "bitrate": 2500000, "framerate": 30, "height": 720, "width": 1280 } } }

Iniciar uma composição

Usando o ARN do EncoderConfiguration fornecido na resposta acima, crie seu recurso de composição:

Exemplo de layout de grade

aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/9W59OBY2M8s4"}}]' --layout '{"grid":{"featuredParticipantAttribute":"isFeatured","videoFillMode":"COVER","gridGap":0}}'

Exemplo de layout PiP

aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO"}}]' --layout '{"pip":{"pipParticipantAttribute":"isPip","pipOffset":10,"pipPosition":"TOP_RIGHT"}}'

Observação: você pode usar essa ferramenta para gerar mais facilmente a configuração de --layout com base em suas escolhas de layout.

A resposta mostrará que a composição foi criada com um estado STARTING. Quando a composição começa a publicar a composição, o estado passará para ACTIVE. (Você poderá ver o estado chamando a operação ListCompositions ou GetComposition.)

Quando uma composição for ACTIVE, a visualização composta do palco do IVS ficará visível no canal do IVS, usando ListCompositions:

aws ivs-realtime list-compositions

A resposta é:

{ "compositions": [ { "arn": "arn:aws:ivs:us-east-1:927810967299:composition/YVoaXkKdEdRP", "destinations": [ { "id": "bD9rRoN91fHU", "startTime": "2023-09-21T15:38:39+00:00", "state": "ACTIVE" } ], "stageArn": "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik", "startTime": "2023-09-21T15:38:37+00:00", "state": "ACTIVE", "tags": {} } ] }

Obs.: você precisa que os participantes do publicador publiquem ativamente no palco para manter a composição viva. Para obter mais informações, Consulte as seções “Publicação e inscrição” dos guias de SDK de transmissão de streaming em tempo real: Web, Android e iOS. Você deverá criar um token de palco distinto para cada participante.