

# Composição do servidor do IVS \$1 Streaming em tempo Real
<a name="server-side-composition"></a>

A composição do servidor usa um servidor do IVS para mixar áudio e vídeo de todos os participantes do palco e, em seguida, enviar esse vídeo mixado para um canal do IVS (por exemplo, para alcançar um público maior) ou para um bucket S3.. A composição do servidor é invocada por meio de operações do ambiente de gerenciamento do IVS na região de origem do estágio.

A transmissão ou gravação de um palco usando a composição do servidor oferece vários benefícios, fazendo dela uma opção atraente para usuários que buscam fluxos de trabalho de vídeo eficientes e confiáveis na nuvem.

**Topics**
+ [Visão geral da composição do servidor do IVS](ssc-overview.md)
+ [Conceitos básicos sobre Composição do servidor do IVS](ssc-getting-started.md)
+ [Ordenação personalizada de participantes](ssc-getting-started-custom-participant-ordering.md)
+ [Habilitar o compartilhamento de tela na composição do servidor do IVS](ssc-getting-started-screen-share.md)
+ [Problemas conhecidos e soluções](ssc-known-issues.md)

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

# Conceitos básicos sobre Composição do servidor do IVS
<a name="ssc-getting-started"></a>

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

## Pré-requisitos
<a name="ssc-getting-started-prerequisites"></a>

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.

Para criar um bucket do S3, consulte a documentação do S3 sobre [como criar buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). O bucket do S3 deve estar na mesma região da AWS que o estágio do IVS.

**Importante**: se você usar um bucket S3 existente:
+ A configuração de **Propriedade do objeto** deve ser **Imposta pelo proprietário do bucket** ou **Preferencial do proprietário do bucket**.
+ A configuração de **Criptografia padrão** deve ser **Criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3)**.

Para obter mais detalhes, consulte a documentação do S3 sobre como [controlar a propriedade de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) e [proteger dados com criptografia](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html).

## Instruções da API
<a name="ssc-getting-started-api-instructions"></a>

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](rt-composite-recording.md) 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](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/getting-started.html).

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

1. Crie um [EncoderConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_EncoderConfiguration.html).

1. 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](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/web-publish-subscribe.html), [Android](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/android-publish-subscribe.html) e [iOS](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/ios-publish-subscribe.html).)

1. Quando você receber um evento do EventBridge publicado pelo participante, chame [StartComposition](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_StartComposition.html) com a configuração de layout desejada.

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


**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
<a name="ssc-getting-started-cli"></a>

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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

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
<a name="ssc-getting-started-cli-create-encoderconfiguration"></a>

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
<a name="ssc-getting-started-cli-start-mediapublish"></a>

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":{"participantOrderAttribute":"order","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":{"participantOrderAttribute":"priority","pipParticipantAttribute":"isPip","pipOffset":10,"pipPosition":"TOP_RIGHT"}}'
```

**Observação**: você pode usar [essa ferramenta](https://composition.ivsdemos.com/) 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](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/web-publish-subscribe.html), [Android](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/android-publish-subscribe.html) e [iOS](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/ios-publish-subscribe.html). Você deverá criar um token de palco distinto para cada participante.

# Ordenação personalizada de participantes
<a name="ssc-getting-started-custom-participant-ordering"></a>

A ordenação personalizada de participantes permite que você controle o posicionamento dos participantes nos layouts de grade e PiP com base nos valores de atributos personalizados nos tokens de participantes, incluindo o posicionamento dos participantes em destaque e a seleção de participantes para a janela PiP. Isso fornece um posicionamento determinístico do participante e permite layouts baseados em funções.

## Como funciona a ordenação personalizada
<a name="ssc-getting-started-custom-participant-ordering-how-custom-ordering-works"></a>

Quando `participantOrderAttribute` é especificado em sua configuração de layout, os participantes são ordenados de acordo com as seguintes regras:
+ Os participantes com o atributo de ordenação especificado em seus tokens são posicionados primeiro, classificados numericamente pelos valores dos atributos.
+ Os participantes sem o atributo de ordenação retornam à ordenação por tempo de chegada e são posicionados após os participantes ordenados.
+ Quando vários participantes têm valores de ordenação idênticos, eles são sub-classificados de acordo com o horário de chegada ao estágio.
+ A ordenação usa classificação numérica (não lexicográfica), então “10” vem depois de “9” (não depois de “1”).
+ Os valores negativos também são compatíveis. Eles são posicionados antes dos valores positivos.
+ Valores não numéricos (por exemplo, “abc”, “1.5”) são tratados como inválidos e esses participantes retornam à ordenação por tempo de chegada.

**Importante:** a ordenação de participantes (seja com base no horário de chegada ou personalizada) entra em vigor após o início da composição. A ordem correta dos participantes não é garantida para os participantes que entrarem no estágio antes do início da composição.

## Criando tokens com atributos de ordenação
<a name="ssc-getting-started-custom-participant-ordering-creating-tokens-with-ordering-attributes"></a>

Para usar a ordenação personalizada de participantes, inclua o atributo de ordenação em seus tokens de participante ao criá-los:

```
aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=1

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=2

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=3
```

Você pode combinar o atributo custom-participant-order com os atributos para selecionar participantes para o slot em destaque e a janela PiP:

```
aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=2,isFeatured=true

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=3,isFeatured=true

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=4,isPip=true
```

## Exemplo de casos de uso
<a name="ssc-getting-started-custom-participant-ordering-example-use-cases"></a>

Exemplo de casos de uso incluem:
+ Posicionamento consistente: os participantes mantêm suas posições ao se reconectarem com o mesmo token.
+ Posicionamento baseado em funções: por exemplo, você pode especificar professores com order=1 e alunos com order=2.
+ Layouts baseados em prioridades: os participantes VIP com valores de ordem mais baixos apareceriam primeiro.
+ Layouts dinâmicos: você pode combinar ordens personalizadas com `featuredParticipantAttribute` e `pipParticipantAttribute` para cenários complexos.
+ Interações entre estágios: ao usar a replicação de participantes para cenários como competições do Modo VS, em que streamers de diferentes estágios interagem, você pode substituir os atributos de ordenação para controlar o posicionamento na composição do estágio de destino.

**Observação:** para casos de uso de replicação de participantes, você pode substituir os atributos do participante (incluindo o atributo de ordem) conforme necessário ao iniciar uma replicação para obter o layout desejado no estágio de destino.

## Compatibilidade retroativa
<a name="ssc-getting-started-custom-participant-ordering-backward-compatibility"></a>

A ordenação personalizada de participantes é um recurso opcional e é totalmente compatível com versões anteriores. As composições existentes `participantOrderAttribute` continuam funcionando inalteradas, usando a ordem no horário de chegada. Quando `participantOrderAttribute` é definido como uma string vazia, o sistema ignora totalmente a ordenação personalizada e volta ao comportamento padrão.

# Habilitar o compartilhamento de tela na composição do servidor do IVS
<a name="ssc-getting-started-screen-share"></a>

Para usar um layout fixo de compartilhamento de tela, siga as etapas abaixo.

## Criar o recurso EncoderConfiguration
<a name="ssc-getting-started-screen-share-create-encoderconfiguration"></a>

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

```
aws ivs-realtime create-encoder-configuration --name "test-ssc-with-screen-share" --video={bitrate=2000000,framerate=30,height=720,width=1280}
```

Crie um token de participante do palco com um atributo `screen-share`. Como especificaremos `screen-share` como o nome do slot `featured`, será necessário criar um token de palco com o atributo `screen-share` definido como `true`:

```
aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes screen-share=true
```

A resposta é:

```
{
   "participantToken": {
      "attributes": {
         "screen-share": "true"
      },
      "expirationTime": "2023-08-04T05:26:11+00:00",
      "participantId": "E813MFklPWLF",
      "token": "eyJhbGciOiJLTVMiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2OTExMjY3NzEsImlhdCI6MTY5MTA4MzU3MSwianRpIjoiRTgxM01Ga2xQV0xGIiwicmVzb3VyY2UiOiJhcm46YXdzOml2czp1cy1lYXN0LTE6OTI3ODEwOTY3Mjk5OnN0YWdlL3U5T2lFMjliVDdYcCIsInRvcGljIjoidTlPaUUyOWJUN1hwIiwiZXZlbnRzX3VybCI6IndzczovL3VzLWVhc3QtMS5ldmVudHMubGl2ZS12aWRlby5uZXQiLCJ3aGlwX3VybCI6Imh0dHBzOi8vYjJlYTVjMmZmMzU1Lmdsb2JhbC53aGlwLmxpdmUtdmlkZW8ubmV0IiwiYXR0cmlidXRlcyI6eyJzY3JlZW4tc2hhcmUiOiJ0cnVlIn0sImNhcGFiaWxpdGllcyI6eyJhbGxvd19wdWJsaXNoIjp0cnVlLCJhbGxvd19zdWJzY3JpYmUiOnRydWV9LCJ2ZXJzaW9uIjoiMC4zIn0.MGUCMFvMzv35O4yVzM9tIWZl7n3mmFQhleqsRSBx_G2qT2YUDlWSNg6H1vL7sAWQMeydSAIxAIvdfqt3Fh1MLiyelc9NnTjI5hL3YPKqDX6J3NDH1fksh8_5y1jztoPDy4yVA5OmtA"
   }
}
```

## Iniciar a composição
<a name="ssc-getting-started-screen-share-start-mediapublish"></a>

Para iniciar a composição usando o recurso de compartilhamento de tela, usaremos este comando:

```
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 '{"grid":{"featuredParticipantAttribute":"screen-share"}}'
```

A resposta é:

```
{
"composition" : {
"arn" : "arn:aws:ivs:us-east-1:927810967299:composition/B19tQcXRgtoz",
"destinations" : [ {
 "configuration" : {
	"channel" : {
	   "channelArn" : "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r",
	   "encoderConfigurationArn" : "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO"
	},
	"name" : ""
 },
 "id" : "SGmgBXTULuXv",
 "state" : "STARTING"
} ],
"layout" : {
 "grid" : {
	"featuredParticipantAttribute" : "screen-share",
	"gridGap": 2,
	"omitStoppedVideo": false,
	"videoAspectRatio": "VIDEO"
 }
},
"stageArn" : "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik",
"startTime" : "2023-09-27T21:32:38Z",
"state" : "STARTING",
"tags" : { }
}
}
```

Quando o participante `E813MFklPWLF` do palco ingressar no palco, o vídeo desse participante será exibido no espaço em destaque e todos os outros publicadores do palco serão renderizados abaixo do espaço:

![\[Inicie a composição usando o recurso de compartilhamento de tela.\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/ssc_StartComposition.png)


## Parar a composição
<a name="ssc-getting-started-screen-share-stop-mediapublish"></a>

Para interromper uma composição em qualquer ponto, chame a operação StopComposition:

```
aws ivs-realtime stop-composition --arn arn:aws:ivs:us-east-1:927810967299:composition/B19tQcXRgtoz
```

# Problemas conhecidos e soluções
<a name="ssc-known-issues"></a>

Esta seção lista os problemas conhecidos que poderão surgir quando a composição do servidor do IVS é usada e sugere possíveis soluções.
+ Algumas composições podem apresentar breves interrupções no áudio após períodos de silêncio.

  **Solução alternativa:** nenhuma.