View a markdown version of this page

Resolução de stream personalizada no Amazon GameLift Streams - GameLift Streams da Amazon

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

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

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.

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

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

Restrições de resolução personalizadas

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

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

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

  1. Abra o console do Amazon GameLift Streams e navegue até seu grupo de streams.

  2. Escolha Testar stream.

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

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

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

Na solicitação da StartStreamSessionAPI, 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

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.

exemplo 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

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

Interação com resolução dinâmica

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.

Práticas recomendadas

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 para o aplicativo. Faça com que o aplicativo gire sua renderização e atualize seu front-end adequadamente.

Solução de problemas

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
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 emCalcule a resolução ideal para um dispositivo.