Visão geral da composição do servidor do IVS - Amazon IVS

Visão geral da composição do servidor do IVS

Este diagrama demonstra como funciona a composição do servidor:

Transmissão de um palco usando a composição do servidor.

Benefícios

Comparada à composição do lado do cliente, a composição do servidor tem os seguintes benefícios:

  • Redução da carga do cliente: com a composição do servidor, a carga do processamento e da combinação de fontes de áudio e vídeo é transferida dos dispositivos individuais do cliente para o próprio servidor. A composição do servidor elimina a necessidade de dispositivos clientes usarem seus recursos de CPU e rede para compor a visualização e transmiti-la ao IVS. Isso significa que os espectadores podem assistir à transmissão sem que seus dispositivos precisem processar tarefas que consomem muitos recursos, o que pode levar a uma maior duração da bateria e a experiências de visualização mais uniformes.

  • Qualidade consistente: a composição do servidor permite um controle preciso sobre a qualidade, a resolução e a taxa de bits do fluxo final. Isso garante uma experiência de visualização consistente para todos os espectadores, independentemente das capacidades individuais de seus dispositivos.

  • Resiliência: ao centralizar o processo de composição no servidor, a transmissão se torna mais robusta. Mesmo que o dispositivo publicador tenha limitações ou flutuações técnicas, o servidor poderá se adaptar e fornecer uma transmissão mais suave para todo o público.

  • Eficiência de largura de banda: como o servidor processa a composição, os publicadores de palco não precisam gastar mais largura de banda transmitindo o vídeo para o IVS.

Como alternativa, para transmitir um palco para um canal IVS, você pode fazer a composição do lado do cliente. Consulte Habilitar vários hosts em um stream do IVS no Guia do usuário do streaming de baixa latência do IVS.

Ciclo de vida da composição

Use o diagrama abaixo para entender as transições de estado de uma composição:

Ciclo de vida de um recurso de composição do servidor.

Em alto nível, o ciclo de vida de uma composição é o seguinte:

  1. Um recurso de composição é criado quando o usuário chama o endpoint StartComposition.

  2. Depois que o IVS inicia a composição com sucesso, um evento “Alteração do estado da composição do IVS (início da sessão)” do EventBridge será enviado. Consulte Usar o EventBridge com o streaming em tempo real do IVS para obter detalhes sobre eventos.

  3. Quando uma composição estiver em um estado ativo, o seguinte poderá acontecer:

    • O usuário interrompe a composição: se o endpoint StopComposition for chamado, o IVS iniciará um desligamento normal da composição, enviando eventos de “Fim de destino” seguidos por um evento de “Fim da sessão”.

    • A composição realiza o desligamento automático: se nenhum participante estiver publicando ativamente no palco do IVS, a composição será finalizada de forma automática após 60 segundos e os eventos do EventBridge serão enviados.

    • Falha no destino: se um destino falhar inesperadamente (por exemplo, o canal do IVS for excluído), o destino passará para o estado RECONNECTING, e um evento de “Reconexão de destino” será enviado. Se a recuperação for impossível, o IVS fará a transição do destino para o estado FAILED e um evento de “Falha no destino” será enviado. O IVS mantém a composição viva se houver ao menos um de seus destinos ativo.

  4. Quando a composição estiver no estado STOPPED ou FAILED, ela passará automaticamente por limpeza após cinco minutos. (Em seguida, ela não será mais recuperada por ListCompositions ou GetComposition.)

API do IVS

A composição do servidor usa estes elementos-chave da API:

  • Um objeto EncoderConfiguration permite que você personalize o formato do vídeo a ser gerado (altura, largura, taxa de bits e outros parâmetros de streaming). Você pode reutilizar um EncoderConfiguration sempre que chamar o endpoint StartComposition.

  • Os endpoints de composição rastreiam a composição do vídeo e a saída para um canal do IVS.

  • O StorageConfiguration rastreia o bucket do S3 no qual as composições são gravadas.

Para usar a composição do servidor, você precisa criar um EncoderConfiguration e anexá-lo ao chamar o endpoint StartComposition. Neste exemplo, o EncoderConfiguration do SquareVideo é usado em duas composições:

A composição do servidor usa dois elementos principais da API.

Para obter informações completas, consulte a Referência de API da Transmissão em tempo real do IVS.

Layouts

O endpoint StartComposition oferece duas opções de layout: grade e PiP (Picture-in-Picture).

Layout de grade

O layout de grade organiza os participantes do palco em uma grade de slots do mesmo tamanho. Ele oferece várias propriedades personalizáveis:

  • videoAspectRatio define o modo de exibição do participante para controlar a proporção dos blocos de vídeo.

  • videoFillMode define como o conteúdo do vídeo se encaixa no bloco do participante.

  • gridGap especifica o espaçamento entre os blocos dos participantes em pixels.

  • omitStoppedVideo permite excluir streams de vídeo interrompidos da composição.

  • featuredParticipantAttribute identifica o slot em destaque. Quando isso é definido, o participante em destaque é exibido em um slot maior na tela principal, com os outros participantes mostrados abaixo.

Para obter detalhes sobre o layout da grade (incluindo valores válidos e padrão para todos os campos), consulte o tipo de dados GridConfiguration.

Layout da grade da composição do servidor

Layout picture-in-picture (PiP)

O layout PiP permite exibir um participante em uma janela de sobreposição com tamanho, posição e comportamento configuráveis. As principais propriedades incluem:

  • pipParticipantAttribute especifica o participante da janela PiP.

  • pipPosition determina a posição do canto da janela PiP.

  • pipWidth e pipHeight configuram a largura e a altura da janela PiP.

  • pipOffset define a posição de deslocamento da janela PiP em pixels a partir das bordas mais próximas.

  • pipBehavior define o comportamento do PiP quando todos os outros participantes saem.

Assim como o layout da grade, o PiP é compatível com featuredParticipantAttribute, omitStoppedVideo, videoFillMode e gridGap para personalizar ainda mais a composição.

Para obter detalhes sobre o layout PiP (incluindo valores válidos e padrão para todos os campos), consulte o tipo de dados PipConfiguration.

Layout Picture-in-Picture (PiP) da composição do servidor

Obs.: a resolução máxima suportada por um publicador de palco na composição do servidor é de 1080p. Se um publicador enviar um vídeo acima de 1080p, ele será renderizado como participante somente de áudio.

Importante: certifique-se de que a aplicação não dependa dos recursos específicos do layout atual, como tamanho e posição dos blocos. Melhorias visuais nos layouts podem ser introduzidas a qualquer momento.