

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

# Resolução de stream personalizada no Amazon GameLift Streams
<a name="custom-stream-resolution"></a>

Por padrão, o Amazon GameLift Streams oferece streams interativos na resolução full HD padrão do setor de 1920 × 1080 pixels, em uma proporção padrão de 16 por 9. Você pode definir uma resolução personalizada para cada sessão de acordo com o formato da tela ou a proporção do dispositivo do player. As resoluções personalizadas oferecem suporte às proporções de paisagem, retrato e quadrado.

Use resoluções personalizadas para:
+ Transmita experiências em tela cheia para telefones e tablets na proporção nativa do dispositivo, sem preencher ou cortar.
+ Combine proporções de monitor ultralargas para obter uma experiência de tela widescreen nativa.
+ Support streams de jogos com dimensões arbitrárias para incorporação em experiências web que não sejam de tela cheia.

Você pode usar a resolução personalizada com todas as configurações do serviço Amazon GameLift Streams, independentemente da classe de stream ou do ambiente de execução.

## Como a resolução funciona
<a name="custom-stream-resolution-how-it-works"></a>

Quando você define uma resolução personalizada, o Amazon GameLift Streams configura o monitor virtual da sessão para a resolução desejada. Isso se torna a **resolução do monitor** para a sessão. Para obter a melhor qualidade visual, o aplicativo deve renderizar na resolução configurada do monitor.

A resolução do monitor determina as dimensões do monitor virtual e a resolução na qual os quadros são capturados. Duas configurações adicionais do Web SDK afetam a resolução do stream entregue ao player:
+ **Resolução máxima:** uma configuração do Web SDK que limita a resolução do stream. Quando não especificado, nenhum limite é aplicado e a resolução total do monitor é transmitida. Consulte [Interação com resolução máxima](#custom-stream-resolution-max-resolution).
+ **Resolução dinâmica:** ajusta automaticamente a resolução da transmissão para oferecer a melhor qualidade visual que a conexão de rede do espectador pode sustentar. Consulte [Interação com resolução dinâmica](#custom-stream-resolution-dynamic-resolution).

Nenhuma das configurações altera a resolução do monitor da sessão.

## Restrições de resolução personalizadas
<a name="custom-stream-resolution-constraints"></a>

A resolução especificada deve atender aos seguintes requisitos:


| Restrição | Valor | 
| --- | --- | 
| Total máximo de pixels | 2.073.600 (1920 × 1080) | 
| Faixa de largura e altura | 320 — 4096 pixels | 
| Paridade de dimensão | Tanto a largura quanto a altura devem ser números pares | 

O serviço valida essas restrições quando você inicia uma sessão. Se a resolução não atender aos requisitos, a solicitação falhará com um erro de validação.

## Defina uma resolução personalizada
<a name="custom-stream-resolution-set"></a>

Você pode definir uma resolução personalizada ao iniciar uma sessão de streaming usando o console, a AWS CLI ou a API.

### Usando o console do Amazon GameLift Streams
<a name="custom-stream-resolution-set-console"></a>

Para testar um stream com uma resolução personalizada:

1. Abra o [console do Amazon GameLift Streams](https://console.aws.amazon.com/gameliftstreams/) e navegue até seu grupo de streams.

1. Escolha **Testar stream**.

1. No menu suspenso **Resolução**, selecione uma resolução para desktop, tablet ou dispositivos móveis.

1. Escolha **Test stream** para iniciar a sessão.

Depois que a transmissão estiver ativa, você poderá ver a resolução atual na sobreposição de estatísticas em tempo real.

### Usar o AWS CLI
<a name="custom-stream-resolution-set-cli"></a>

Use o comando `start-stream-session` com o parâmetro `--display-configuration`:

```
aws gameliftstreams start-stream-session \
  --identifier sg-ExampleStreamGroup \
  --application-identifier a-ExampleApp \
  --protocol WebRTC \
  --signal-request "your-signal-request" \
  --display-configuration '{"Resolution":{"Width":1920,"Height":1080}}'
```

### Usar a API
<a name="custom-stream-resolution-set-api"></a>

Na solicitação da [StartStreamSession](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_StartStreamSession.html)API, inclua o `DisplayConfiguration` parâmetro:

```
{
  "ApplicationIdentifier": "a-ExampleApp",
  "Protocol": "WebRTC",
  "SignalRequest": "your-signal-request",
  "DisplayConfiguration": {
    "Resolution": {
      "Width": 1920,
      "Height": 1080
    }
  }
}
```

## Calcule a resolução ideal para um dispositivo
<a name="custom-stream-resolution-calculate"></a>

Você pode usar qualquer resolução que atenda às restrições de resolução. A fórmula a seguir é uma abordagem recomendada para encontrar a maior resolução para uma proporção específica. Ele maximiza os pixels disponíveis para obter a melhor qualidade visual:

```
height = floor_to_even( sqrt(2,073,600 * H / W) )
width  = floor_to_even( height * W / H )
```

Nessa fórmula, `W:H` é a proporção desejada e `2,073,600` é a contagem máxima total de pixels (1920 × 1080). A função é `floor_to_even(x)` arredondada para o número inteiro par mais próximo.

**Example 19. 5:9 (telefone celular)**  

```
height = floor_to_even( sqrt(2,073,600 * 9 / 19.5) ) = floor_to_even(978.2) = 978
width  = floor_to_even( 978 * 19.5 / 9 )             = floor_to_even(2118.3) = 2118
→  Resolution: 2118 × 978  (2,071,404 pixels, 99.9% utilization)
```

Para resoluções de retrato, calcule a resolução de paisagem e troque os valores de largura e altura.

## Valores de resolução comuns para dispositivos
<a name="custom-stream-resolution-presets"></a>

Os valores a seguir usam proporções padrão genéricas que abrangem categorias comuns de dispositivos. Dispositivos individuais podem ter proporções nativas ligeiramente diferentes, o que resulta em barras pretas visualmente insignificantes. Para um preenchimento perfeito em pixels, use a proporção exata nativa do dispositivo com a fórmula acima.


| Categoria | Taxa de proporção | Paisagem | Retrato | Dispositivos correspondentes | 
| --- | --- | --- | --- | --- | 
| Área de Trabalho | 16:9 | 1920 × 1080 | 1080 × 1920 | Monitores de desktop, TVs, dispositivos móveis HD | 
| Área de Trabalho | 16:10 | 1820 × 1138 | 1138 × 1820 | Monitores widescreen, tablets Amazon Fire | 
| Área de Trabalho | 21:9 | 2198 × 942 | Não aplicável | Monitores ultralargos | 
| Tablet | 3:2 | 1760 × 1174 | 1174 × 1760 | Vários iPads | 
| Tablet | 4:3 | 160 × 1246 | 1246 × 160 | iPads, tablets Android | 
| Dispositivos móveis | 20:9 | 2142 × 964 | 964 × 2142 | Google Pixel, Samsung Galaxy | 
| Dispositivos móveis | 19. 5:9 | 2118 × 978 | 978 × 2118 | iPhones, Samsung Galaxy | 
| Dispositivos móveis | 18:9 | 2036 × 1018 | 1018 × 2036 | Outros telefones Android | 
| Outros | 1:1 | 1440 × 1440 | Não aplicável | Monitores quadrados | 

## Interação com resolução máxima
<a name="custom-stream-resolution-max-resolution"></a>

A resolução personalizada e a resolução máxima têm finalidades diferentes:
+ **Resolução personalizada:** quando você define uma resolução personalizada, ela se torna a resolução do monitor da sessão. Isso é o que o servidor renderiza, incluindo a proporção e as dimensões em pixels dos quadros capturados.
+ **Resolução máxima:** uma configuração do Web SDK que limita a resolução do stream. A tampa se encaixa na caixa delimitadora orientada do nível selecionado (por exemplo, 1280 × 720 para 720p). Use essa configuração para atingir dispositivos de baixo custo que não conseguem decodificar uma imagem de resolução total.

Para obter mais informações sobre o parâmetro de resolução máxima, consulte a Referência da API do Amazon GameLift Streams Web SDK na página de documentação do [Amazon GameLift Streams](https://docs.aws.amazon.com/gameliftstreams/).

## Interação com resolução dinâmica
<a name="custom-stream-resolution-dynamic-resolution"></a>

A resolução dinâmica ajusta automaticamente a resolução da transmissão para oferecer a melhor qualidade visual que a conexão de rede do espectador pode sustentar. Esse recurso está disponível com o Amazon GameLift Streams Web SDK versão 1.3.0 e posterior.

A resolução dinâmica não afeta a resolução do monitor da sessão. O Amazon GameLift Streams ajusta somente a resolução do stream entregue ao player. Quando a largura de banda é limitada, a resolução do stream diminui enquanto preserva a proporção. Quando a largura de banda é recuperada, ela volta para a resolução total do monitor ou para o limite máximo de resolução.

Por exemplo, se você definir uma resolução personalizada de 1080 × 1920 (retrato móvel, 9:16), o player receberá o stream completo de 1080 × 1920 na largura de banda normal. Se a rede do player ficar restrita, a resolução dinâmica poderá reduzir a transmissão para uma resolução menor (por exemplo, 720 × 1280), mantendo a proporção de 9:16. A resolução do monitor no servidor permanece 1080 × 1920 por toda parte.

Para obter mais informações sobre o parâmetro de resolução dinâmica, consulte a Referência da API do Amazon GameLift Streams Web SDK na página de documentação do [Amazon GameLift Streams](https://docs.aws.amazon.com/gameliftstreams/).

## Práticas recomendadas
<a name="custom-stream-resolution-best-practices"></a>

Siga estas melhores práticas ao usar resoluções personalizadas com o Amazon GameLift Streams:
+ **Combine a proporção do dispositivo do jogador para preencher a tela sem caixa de correio ou caixa de pilares.** Use os valores de resolução comuns ou a fórmula de cálculo para encontrar a resolução ideal para uma determinada proporção. Para jogos móveis voltados para retratos, use uma resolução de retrato para fornecer uma experiência vertical nativa.
+ **Otimize seu frontend para a experiência de streaming.** Certifique-se de que seu cliente web gerencie a proporção da transmissão corretamente ao transmitir para dispositivos móveis ou tablets.
+ **Teste seu aplicativo com resoluções personalizadas antes de implantá-lo para os jogadores.** A maioria dos aplicativos se adapta automaticamente à resolução do monitor quando executada em tela cheia. No entanto, alguns aplicativos podem não lidar com resoluções diferentes de 16:9.
+ **Certifique-se de que a câmera e a interface do jogo se adaptem à proporção.** Ajuste o campo de visão da câmera do jogo para mostrar a quantidade adequada da cena em vez de cortar a janela de visualização. Reflua ou reposicione os elementos da interface de acordo com a nova proporção.
+ **Evite alterar a resolução do monitor virtual em tempo de execução em seu aplicativo.** O Amazon GameLift Streams define a resolução do monitor quando a sessão começa. Aplicativos que o modificam durante o jogo podem produzir resultados inesperados.
+ **Controle a rotação do dispositivo em seu aplicativo e frontend.** A resolução do monitor é fixa durante a sessão. Para suportar a rotação intermediária do dispositivo, recomendamos enviar o sinal de rotação [Comunicação por canal de dados entre um aplicativo e um cliente web](data-channels.md) para o aplicativo. Faça com que o aplicativo gire sua renderização e atualize seu front-end adequadamente.

## Solução de problemas
<a name="custom-stream-resolution-troubleshooting"></a>

A tabela a seguir descreve problemas comuns, suas causas e soluções sugeridas.


| Problema | Causa | Solução | 
| --- | --- | --- | 
| Falha ao iniciar a sessão com erro de validação | A resolução não atende às restrições | Verifique se sua resolução atende a todas as restrições listadas em. [Restrições de resolução personalizadas](#custom-stream-resolution-constraints) | 
| O aplicativo é renderizado com resolução errada | O aplicativo não está sendo executado em tela cheia ou é renderizado em uma resolução diferente no modo de janela | Configure o aplicativo para ser executado em tela cheia. O aplicativo pode consultar o sistema para obter a resolução configurada. | 
| A resolução do stream é menor do que a esperada (mesma proporção) | O limite máximo de resolução ou a resolução dinâmica estão ativos | Esse é o comportamento esperado quando a resolução máxima ou a resolução dinâmica está ativa. Ambos os recursos reduzem a resolução do stream enquanto preservam a proporção. Verifique a resolução máxima ou a configuração de resolução dinâmica no Web SDK. | 
| A resolução do stream difere da resolução personalizada (proporção diferente) | O aplicativo altera a resolução do monitor durante a inicialização ou no meio do stream | A resolução máxima e a resolução dinâmica não causam esse problema. Esse é um comportamento conhecido de alguns aplicativos que substituem a resolução do monitor. Considere usar um aplicativo que não substitua a resolução do monitor ou configure o aplicativo para renderizar na resolução do monitor em tela cheia. | 
| Barras pretas aparecem na tela do player | Incompatibilidade de proporção entre stream e dispositivo, ou o aplicativo é renderizado com barras pretas internamente | Verifique se as barras pretas são do cliente (incompatibilidade de proporção) ou do próprio aplicativo. Use um valor de resolução que corresponda à proporção do dispositivo do player ou calcule a resolução ideal usando a fórmula em[Calcule a resolução ideal para um dispositivo](#custom-stream-resolution-calculate). | 