View a markdown version of this page

Risoluzione personalizzata dello stream in Amazon GameLift Streams - GameLift Stream Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione personalizzata dello stream in Amazon GameLift Streams

Per impostazione predefinita, Amazon GameLift Streams offre stream interattivi con la risoluzione Full HD standard del settore di 1920 × 1080 pixel, con un rapporto di aspetto standard 16 x 9. Puoi impostare una risoluzione personalizzata per ogni sessione in base alla forma dello schermo o alle proporzioni del dispositivo del giocatore. Le risoluzioni personalizzate supportano le proporzioni orizzontale, verticale e quadrata.

Utilizza risoluzioni personalizzate per:

  • Trasmetti esperienze a schermo intero su telefoni e tablet nelle proporzioni native del dispositivo, senza imbottitura o ritaglio.

  • Abbina le proporzioni dei monitor ultrawide per un'esperienza widescreen nativa.

  • Supporta stream di gioco con dimensioni arbitrarie per l'incorporamento in esperienze web non a schermo intero.

Puoi utilizzare una risoluzione personalizzata con tutte le configurazioni del servizio Amazon GameLift Streams, indipendentemente dalla classe di stream o dall'ambiente di runtime.

Come funziona la risoluzione

Quando imposti una risoluzione personalizzata, Amazon GameLift Streams configura il monitor virtuale della sessione alla risoluzione desiderata. Questa diventa la risoluzione del monitor per la sessione. Per una migliore qualità visiva, l'applicazione deve eseguire il rendering alla risoluzione del monitor configurata.

La risoluzione del monitor determina le dimensioni del monitor virtuale e la risoluzione con cui vengono acquisiti i fotogrammi. Due impostazioni Web SDK aggiuntive influiscono sulla risoluzione dello stream inviato al lettore:

  • Risoluzione massima: un'impostazione Web SDK che limita la risoluzione dello stream. Se non specificato, non viene applicato alcun limite e viene trasmessa in streaming l'intera risoluzione del monitor. Per informazioni, consulta Interazione con la massima risoluzione.

  • Risoluzione dinamica: regola automaticamente la risoluzione dello streaming per offrire la migliore qualità visiva che la connessione di rete dello spettatore può supportare. Per informazioni, consulta Interazione con risoluzione dinamica.

Nessuna impostazione modifica la risoluzione del monitor per la sessione.

Vincoli di risoluzione personalizzati

La risoluzione specificata deve soddisfare i seguenti requisiti:

Vincolo Valore
Numero massimo di pixel totali 2.073.600 (1920 × 1080)
Intervallo di larghezza e altezza 320 — 4096 pixel
Parità dimensionale Sia la larghezza che l'altezza devono essere numeri pari

Il servizio convalida questi vincoli all'avvio di una sessione. Se la risoluzione non soddisfa i requisiti, la richiesta ha esito negativo e viene generato un errore di convalida.

Imposta una risoluzione personalizzata

Puoi impostare una risoluzione personalizzata quando avvii una sessione di streaming utilizzando la console, la AWS CLI o l'API.

Utilizzo della console Amazon GameLift Streams

Per testare uno stream con una risoluzione personalizzata:

  1. Apri la console Amazon GameLift Streams e accedi al tuo gruppo di stream.

  2. Scegli Test stream.

  3. Nel menu a discesa Risoluzione, seleziona una risoluzione per desktop, tablet o dispositivi mobili.

  4. Scegli Test stream per iniziare la sessione.

Dopo che lo stream è attivo, puoi visualizzare la risoluzione attuale nell'overlay delle statistiche in tempo reale.

Utilizzo di AWS CLI

Usa il start-stream-session comando con il --display-configuration parametro:

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}}'

Uso dell’API

Nella richiesta StartStreamSessionAPI, includi il DisplayConfiguration parametro:

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

Calcola la risoluzione ottimale per un dispositivo

È possibile utilizzare qualsiasi risoluzione che soddisfi i vincoli di risoluzione. La formula seguente è un approccio consigliato per trovare la risoluzione massima per un rapporto di aspetto specifico. Ottimizza i pixel disponibili per la migliore qualità visiva:

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

In questa formula, W:H sono le proporzioni target e 2,073,600 il numero massimo totale di pixel (1920 × 1080). La funzione viene floor_to_even(x) arrotondata per difetto al numero intero pari più vicino.

Esempio 19. 5:9 (telefono cellulare)
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)

Per le risoluzioni verticali, calcola la risoluzione orizzontale e scambia i valori di larghezza e altezza.

Valori di risoluzione comuni per i dispositivi

I seguenti valori utilizzano rapporti standard generici che coprono categorie di dispositivi comuni. I singoli dispositivi potrebbero avere proporzioni native leggermente diverse, il che si traduce in barre nere visivamente trascurabili. Per un riempimento perfetto ai pixel, utilizza le proporzioni esatte native del dispositivo con la formula sopra riportata.

Categoria Proporzioni Paesaggio Ritratto Dispositivi corrispondenti
Desktop 16:9 1920 × 1080 1080 × 1920 Monitor da tavolo, TV, dispositivi mobili HD
Desktop 16:10 1820 × 1138 1138 × 1820 Monitor widescreen, tablet Amazon Fire
Desktop 21:9 2198 × 942 Non applicabile Monitor Ultrawide
Tablet 3:2 1760 × 1174 1174 × 1760 Diversi iPad
Tablet 4:3 1660 × 1246 1246 × 1660 iPads, tablet Android
Mobile 20:9 2142 × 964 964 × 2142 Google Pixel, Samsung Galaxy
Mobile 19.5:9 218 × 978 978 × 2118 iPhone, Samsung Galaxy
Mobile 18:9 2036 × 1018 1018 × 2036 Altri telefoni Android
Altro 1:1 1440 × 1440 Non applicabile Monitor quadrati

Interazione con la massima risoluzione

La risoluzione personalizzata e la risoluzione massima hanno scopi diversi:

  • Risoluzione personalizzata: quando si imposta una risoluzione personalizzata, questa diventa la risoluzione del monitor per la sessione. Questo è ciò che viene renderizzato dal server, comprese le proporzioni e le dimensioni in pixel dei fotogrammi acquisiti.

  • Risoluzione massima: un'impostazione Web SDK che limita la risoluzione dello stream. Il limite rientra nel riquadro di delimitazione orientato del livello selezionato (ad esempio, 1280 × 720 per 720p). Utilizzate questa impostazione per indirizzare i dispositivi di fascia bassa che non sono in grado di decodificare un'immagine a piena risoluzione.

Per ulteriori informazioni sul parametro di risoluzione massima, consulta il riferimento all'API Amazon GameLift Streams Web SDK nella pagina della documentazione di Amazon GameLift Streams.

Interazione con risoluzione dinamica

La risoluzione dinamica regola automaticamente la risoluzione dello streaming per offrire la migliore qualità visiva che la connessione di rete dello spettatore può supportare. Questa funzionalità è disponibile con Amazon GameLift Streams Web SDK versione 1.3.0 e successive.

La risoluzione dinamica non influisce sulla risoluzione del monitor per la sessione. Amazon GameLift Streams regola solo la risoluzione dello streaming fornita al lettore. Quando la larghezza di banda è limitata, la risoluzione dello stream si riduce preservando le proporzioni. Quando la larghezza di banda viene ripristinata, viene ripristinata fino alla risoluzione completa del monitor o al limite massimo di risoluzione.

Ad esempio, se imposti una risoluzione personalizzata di 1080 × 1920 (mobile portrait, 9:16), il lettore riceve l'intero stream 1080 × 1920 con una larghezza di banda normale. Se la rete del lettore diventa limitata, la risoluzione dinamica potrebbe ridurre lo stream a una risoluzione inferiore (ad esempio, 720 × 1280) mantenendo le proporzioni di 9:16. La risoluzione del monitor sul server rimane sempre 1080 × 1920.

Per ulteriori informazioni sul parametro di risoluzione dinamica, consulta il riferimento all'API Amazon GameLift Streams Web SDK nella pagina della documentazione di Amazon GameLift Streams.

Best practice

Segui queste best practice quando utilizzi risoluzioni personalizzate con Amazon GameLift Streams:

  • Abbina le proporzioni del dispositivo del giocatore per riempire lo schermo senza usare letterboxing o pillarboxing. Usa i valori di risoluzione o la formula di calcolo più comuni per trovare la risoluzione ottimale per un determinato rapporto di aspetto. Per i giochi mobili orientati al ritratto, utilizza una risoluzione verticale per offrire un'esperienza verticale nativa.

  • Ottimizza il tuo frontend per l'esperienza di streaming. Assicurati che il tuo client web gestisca correttamente le proporzioni dello stream durante lo streaming su dispositivi mobili o tablet.

  • Testa la tua applicazione con risoluzioni personalizzate prima di distribuirla ai giocatori. La maggior parte delle applicazioni si adatta automaticamente alla risoluzione del monitor quando viene eseguita a schermo intero. Tuttavia, alcune applicazioni potrebbero non gestire correttamente risoluzioni diverse da 16:9.

  • Assicurati che la fotocamera e l'interfaccia di gioco si adattino alle proporzioni. Regola il campo visivo della videocamera di gioco per mostrare la giusta quantità di scena anziché ritagliare l'area di visualizzazione. Ridisponi o riposiziona gli elementi dell'interfaccia utente per adattarli alle nuove proporzioni.

  • Evitate di modificare la risoluzione del monitor virtuale in fase di esecuzione all'interno dell'applicazione. Amazon GameLift Streams imposta la risoluzione del monitor all'inizio della sessione. Le applicazioni che lo modificano durante il gioco potrebbero produrre risultati imprevisti.

  • Gestisci la rotazione dei dispositivi nell'applicazione e nel frontend. La risoluzione del monitor è fissa per tutta la durata della sessione. Per supportare la rotazione intermedia del dispositivo, consigliamo di inviare il segnale di rotazione Comunicazione tramite canale dati tra un'applicazione e un client Web all'applicazione. Chiedi all'applicazione di ruotare il rendering e aggiorna il frontend di conseguenza.

Risoluzione dei problemi

La tabella seguente descrive i problemi più comuni, le relative cause e le soluzioni suggerite.

Problema Causa Soluzione
La sessione non si avvia con un errore di convalida La risoluzione non soddisfa i vincoli Verifica che la risoluzione soddisfi tutti i vincoli elencati in. Vincoli di risoluzione personalizzati
L'applicazione esegue il rendering con una risoluzione errata L'applicazione non è in esecuzione a schermo intero o viene renderizzata a una risoluzione diversa in modalità finestra Configura l'applicazione per l'esecuzione a schermo intero. L'applicazione può interrogare il sistema per la risoluzione configurata.
La risoluzione dello stream è inferiore al previsto (stesse proporzioni) È attivo il limite di risoluzione massimo o la risoluzione dinamica Questo è il comportamento previsto quando è attiva la risoluzione massima o la risoluzione dinamica. Entrambe le funzionalità riducono la risoluzione dello stream preservando le proporzioni. Controllate la risoluzione massima o l'impostazione della risoluzione dinamica nel Web SDK.
La risoluzione dello stream è diversa dalla risoluzione personalizzata (proporzioni diverse) L'applicazione modifica la risoluzione del monitor durante l'avvio o durante lo streaming La risoluzione massima e la risoluzione dinamica non causano questo problema. Si tratta di un comportamento noto per alcune applicazioni che sostituiscono la risoluzione del monitor. Prendi in considerazione l'utilizzo di un'applicazione che non sovrascriva la risoluzione del monitor o configura l'applicazione per il rendering alla risoluzione del monitor a schermo intero.
Sullo schermo del giocatore compaiono delle barre nere Mancata corrispondenza delle proporzioni tra lo stream e il dispositivo oppure l'applicazione viene renderizzata internamente con barre nere Controlla se le barre nere provengono dal client (mancata corrispondenza delle proporzioni) o dall'applicazione stessa. Usa un valore di risoluzione che corrisponda alle proporzioni del dispositivo del lettore oppure calcola la risoluzione ottimale utilizzando la formula inCalcola la risoluzione ottimale per un dispositivo.