

# Visão geral da composição do servidor do IVS
<a name="ssc-overview"></a>

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

![\[Transmissão de um palco usando a composição do servidor.\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/ssc_Intro_Composite_Recording.png)


## Benefícios
<a name="ssc-benefits"></a>

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](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/multiple-hosts.html) no *Guia do usuário do streaming de baixa latência do IVS*.

## Ciclo de vida da composição
<a name="ssc-composition-endpoint"></a>

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.\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/ssc_Composition_Lifecycle.png)


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 a operação StartComposition.

1. 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](eventbridge.md) para obter detalhes sobre eventos.

1. Quando uma composição estiver em um estado ativo, o seguinte poderá acontecer:
   + O usuário interrompe a composição: se a operação StopComposition for chamada, 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 o palco do IVS for excluído ou nenhum participante estiver publicando ativamente no palco do IVS por 60 segundos, a composição será finalizada de forma automática 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.

1. 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 name="ssc-api"></a>

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 a operação StartComposition.
+ As operações 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 a operação StartComposition. Neste exemplo, o EncoderConfiguration do SquareVideo é usado em duas composições:

![\[A composição do servidor usa dois elementos principais da API.\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/ssc_IVS_API_Composite_Recording.png)


Para obter informações completas, consulte a [Referência de API da Transmissão em tempo real do IVS](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/Welcome.html).

## Layouts
<a name="ssc-api-layouts"></a>

A operação StartComposition oferece duas opções de layout: grade e PiP (Picture-in-Picture).

### Layout de grade
<a name="ssc-api-layouts-grid"></a>

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.
+ `participantOrderAttribute` permite a ordenação personalizada de participantes com base nos valores dos atributos nos tokens dos participantes. Quando especificado, os participantes são ordenados numericamente por seus valores de atributos, com os participantes sem o atributo retornando à ordem de chegada. Isso fornece posicionamento determinístico opcional e permite layouts baseados em funções.

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](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_GridConfiguration.html).

![\[Layout da grade da composição do servidor\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/ssc_Grid_Layout.png)


### Layout picture-in-picture (PiP)
<a name="ssc-api-layouts-pip"></a>

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`, `gridGap` e `participantOrderAttribute` para personalizar ainda mais a composição. `participantOrderAttribute` permite a ordenação personalizada de participantes tanto para selecionar o participante para a janela PiP quanto para posicionar os participantes da grade com base nos valores dos atributos nos tokens dos participantes.

Para obter detalhes sobre o layout PiP (incluindo valores válidos e padrão para todos os campos), consulte o tipo de dados [PipConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_PipConfiguration.html).

![\[Layout Picture-in-Picture (PiP) da composição do servidor\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/ssc_PiP_Layout.png)


**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*. 