View a markdown version of this page

Résolution de flux personnalisée dans Amazon GameLift Streams - Amazon GameLift Streams

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution de flux personnalisée dans Amazon GameLift Streams

Par défaut, Amazon GameLift Streams diffuse des flux interactifs à la résolution Full HD standard de 1920 × 1080 pixels, dans un rapport hauteur/largeur standard de 16 x 9. Vous pouvez définir une résolution personnalisée pour chaque session afin qu'elle corresponde à la forme de l'écran ou au format d'image de l'appareil du joueur. Les résolutions personnalisées prennent en charge les formats paysage, portrait et carré.

Utilisez des résolutions personnalisées pour :

  • Diffusez des expériences en plein écran sur les téléphones et les tablettes dans leur format d'origine, sans rembourrage ni recadrage.

  • Associez les formats d'image ultralarges des écrans pour une expérience d'écran large native.

  • Support des flux de jeu aux dimensions arbitraires à intégrer dans des expériences Web autres que le plein écran.

Vous pouvez utiliser une résolution personnalisée avec toutes les configurations de service Amazon GameLift Streams, quels que soient la classe de flux ou l'environnement d'exécution.

Comment fonctionne la résolution

Lorsque vous définissez une résolution personnalisée, Amazon GameLift Streams configure le moniteur virtuel de la session à la résolution souhaitée. Cela devient la résolution du moniteur pour la session. Pour une qualité visuelle optimale, l'application doit effectuer le rendu à la résolution d'écran configurée.

La résolution du moniteur détermine les dimensions du moniteur virtuel et la résolution à laquelle les images sont capturées. Deux paramètres supplémentaires du SDK Web affectent la résolution du flux transmis au lecteur :

  • Résolution maximale : paramètre du SDK Web qui limite la résolution du flux. Lorsque ce n'est pas spécifié, aucun plafond n'est appliqué et la résolution complète du moniteur est diffusée en continu. Consultez Interaction avec une résolution maximale.

  • Résolution dynamique : ajuste automatiquement la résolution du flux pour offrir la meilleure qualité visuelle possible à la connexion réseau du spectateur. Consultez Interaction avec la résolution dynamique.

Aucun des deux paramètres ne modifie la résolution du moniteur pour la session.

Contraintes de résolution personnalisées

La résolution que vous spécifiez doit répondre aux exigences suivantes :

Contrainte Value
Nombre total de pixels maximum 2 073 600 (1920 × 1080)
Plage de largeur et de hauteur 320 — 4096 pixels
Parité dimensionnelle La largeur et la hauteur doivent être des nombres pairs

Le service valide ces contraintes lorsque vous démarrez une session. Si la résolution ne répond pas aux exigences, la demande échoue avec une erreur de validation.

Définissez une résolution personnalisée

Vous pouvez définir une résolution personnalisée lorsque vous démarrez une session de streaming à l'aide de la console, de la AWS CLI ou de l'API.

Utilisation de la console Amazon GameLift Streams

Pour tester un flux avec une résolution personnalisée :

  1. Ouvrez la console Amazon GameLift Streams et accédez à votre groupe de streams.

  2. Choisissez Test stream.

  3. Dans le menu déroulant Résolution, sélectionnez une résolution pour les ordinateurs de bureau, les tablettes ou les appareils mobiles.

  4. Choisissez Test stream pour démarrer la session.

Une fois le flux actif, vous pouvez consulter la résolution actuelle dans la superposition des statistiques en temps réel.

Utilisation de AWS INTERFACE DE LIGNE DE COMMANDE (CLI)

Utilisez la start-stream-session commande avec le --display-configuration paramètre :

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

Utilisation de l’API

Dans la demande StartStreamSessiond'API, incluez le DisplayConfiguration paramètre :

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

Calculez la résolution optimale pour un appareil

Vous pouvez utiliser n'importe quelle résolution qui répond aux contraintes de résolution. La formule suivante est une approche recommandée pour trouver la résolution la plus élevée pour un rapport hauteur/largeur spécifique. Il maximise les pixels disponibles pour une qualité visuelle optimale :

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

Dans cette formule, W:H il s'agit du rapport hauteur/largeur cible et 2,073,600 du nombre total de pixels maximum (1920 × 1080). La fonction floor_to_even(x) arrondit au nombre entier pair le plus proche.

Exemple 19. 5:9 (téléphone portable)
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)

Pour les résolutions en portrait, calculez la résolution en paysage et échangez les valeurs de largeur et de hauteur.

Valeurs de résolution communes pour les appareils

Les valeurs suivantes utilisent des ratios standard génériques qui couvrent les catégories d'appareils les plus courantes. Chaque appareil peut avoir des rapports hauteur/largeur natifs légèrement différents, ce qui se traduit par des barres noires visuellement négligeables. Pour un remplissage parfait au pixel près, utilisez le format d'image natif exact de l'appareil à l'aide de la formule ci-dessus.

Catégorie Proportions Paysage Portrait Appareils correspondants
Desktop 16:9 1920 × 1080 1080 × 1920 Écrans de bureau, téléviseurs, appareils mobiles HD
Desktop 16h10 1820 × 1138 1138 × 1820 Moniteurs à écran large, tablettes Amazon Fire
Desktop 21:9 2198 × 942 Non applicable Moniteurs ultralarges
Tablet 3:2 1760 × 1174 1174 × 1760 Différents iPads
Tablet 4:3 1660 × 1246 1246 × 1660 iPads, tablettes Android
Applications mobiles 20:9 2142 × 964 964 × 2142 Google Pixel, Samsung Galaxy
Applications mobiles 19,5 : 9 2118 × 978 978 × 2118 iPhone, Samsung Galaxy
Applications mobiles 18:9 2036 × 1018 1018 × 2036 Autres téléphones Android
Autre 1:1 1440 × 1440 Non applicable Moniteurs carrés

Interaction avec une résolution maximale

La résolution personnalisée et la résolution maximale répondent à différents objectifs :

  • Résolution personnalisée : lorsque vous définissez une résolution personnalisée, elle devient la résolution du moniteur pour la session. C'est ce que le serveur affiche, y compris le rapport hauteur/largeur et les dimensions en pixels des images capturées.

  • Résolution maximale : paramètre du SDK Web qui limite la résolution du flux. Le plafond s'inscrit dans le cadre de délimitation orienté du niveau sélectionné (par exemple, 1280 × 720 pour 720p). Utilisez ce paramètre pour cibler les appareils bas de gamme qui ne peuvent pas décoder une image en pleine résolution.

Pour plus d'informations sur le paramètre de résolution maximale, consultez la référence d'API du SDK Web Amazon GameLift Streams sur la page de documentation Amazon GameLift Streams.

Interaction avec la résolution dynamique

La résolution dynamique ajuste automatiquement la résolution du flux pour offrir la meilleure qualité visuelle possible à la connexion réseau du téléspectateur. Cette fonctionnalité est disponible avec Amazon GameLift Streams Web SDK version 1.3.0 et versions ultérieures.

La résolution dynamique n'affecte pas la résolution du moniteur pour la session. Amazon GameLift Streams ajuste uniquement la résolution du flux transmis au lecteur. Lorsque la bande passante est limitée, la résolution du flux diminue tout en préservant le rapport hauteur/largeur. Lorsque la bande passante se rétablit, elle revient à la résolution complète du moniteur ou à la limite de résolution maximale.

Par exemple, si vous définissez une résolution personnalisée de 1080 × 1920 (portrait mobile, 9:16), le lecteur reçoit le flux complet de 1080 × 1920 avec une bande passante normale. Si le réseau du lecteur devient restreint, la résolution dynamique peut réduire le flux à une résolution inférieure (par exemple, 720 × 1280) tout en conservant le format d'image de 9:16. La résolution du moniteur sur le serveur reste de 1080 × 1920 dans l'ensemble.

Pour plus d'informations sur le paramètre de résolution dynamique, consultez la référence d'API du SDK Web Amazon GameLift Streams sur la page de documentation Amazon GameLift Streams.

Bonnes pratiques

Suivez ces bonnes pratiques lorsque vous utilisez des résolutions personnalisées avec Amazon GameLift Streams :

  • Faites correspondre le format d'image de l'appareil du joueur pour remplir l'écran sans boîte aux lettres ou à piliers. Utilisez les valeurs de résolution communes ou la formule de calcul pour trouver la résolution optimale pour un rapport hauteur/largeur donné. Pour les jeux mobiles axés sur le portrait, utilisez une résolution de portrait pour offrir une expérience verticale native.

  • Optimisez votre interface pour l'expérience de streaming. Assurez-vous que votre client Web gère correctement le format d'image du flux lorsque vous le diffusez sur des appareils mobiles ou des tablettes.

  • Testez votre application avec des résolutions personnalisées avant de la déployer auprès des joueurs. La plupart des applications s'adaptent automatiquement à la résolution du moniteur lorsqu'elles sont exécutées en plein écran. Cependant, certaines applications peuvent ne pas gérer correctement les résolutions autres que le format 16:9.

  • Assurez-vous que la caméra et l'interface utilisateur du jeu s'adaptent au format d'image. Ajustez le champ de vision de la caméra de jeu pour afficher la partie appropriée de la scène plutôt que de recadrer la fenêtre d'affichage. Redistribuez ou repositionnez les éléments de l'interface utilisateur pour les adapter au nouveau format d'image.

  • Évitez de modifier la résolution du moniteur virtuel lors de l'exécution dans votre application. Amazon GameLift Streams définit la résolution du moniteur au démarrage de la session. Les applications qui le modifient en cours de jeu peuvent produire des résultats inattendus.

  • Gérez la rotation des appareils dans votre application et votre frontend. La résolution du moniteur est fixe pendant toute la durée de la session. Pour prendre en charge la rotation des appareils en cours de route, nous vous recommandons d'envoyer le signal de rotation Communication par canal de données entre une application et un client Web à l'application. Demandez à l'application de faire pivoter son rendu et de mettre à jour votre interface en conséquence.

Résolution des problèmes

Le tableau suivant décrit les problèmes courants, leurs causes et les solutions proposées.

Problème Cause Solution
La session ne démarre pas en raison d'une erreur de validation La résolution ne répond pas aux contraintes Vérifiez que votre résolution répond à toutes les contraintes répertoriées dansContraintes de résolution personnalisées.
L'application s'affiche à une mauvaise résolution L'application ne s'exécute pas en plein écran ou s'affiche à une résolution différente en mode fenêtré Configurez l'application pour qu'elle s'exécute en plein écran. L'application peut interroger le système pour connaître la résolution configurée.
La résolution du flux est inférieure à celle attendue (même rapport hauteur/largeur) La limite de résolution maximale ou la résolution dynamique est active Ce comportement est attendu lorsque la résolution maximale ou la résolution dynamique est active. Les deux fonctionnalités réduisent la résolution du flux tout en préservant le rapport hauteur/largeur. Vérifiez le paramètre de résolution maximale ou de résolution dynamique dans le SDK Web.
La résolution du flux diffère de la résolution personnalisée (rapport hauteur/largeur différent) L'application modifie la résolution du moniteur au démarrage ou en cours de diffusion La résolution maximale et la résolution dynamique ne sont pas à l'origine de ce problème. Ce comportement est connu pour certaines applications qui remplacent la résolution du moniteur. Envisagez d'utiliser une application qui ne remplace pas la résolution du moniteur ou configurez l'application pour qu'elle s'affiche à la résolution du moniteur en plein écran.
Des barres noires apparaissent sur l'écran du joueur Incompatibilité du rapport hauteur/largeur entre le flux et l'appareil, ou affichage de l'application avec des barres noires internes Vérifiez si les barres noires proviennent du client (incompatibilité des proportions) ou de l'application elle-même. Utilisez une valeur de résolution correspondant au rapport hauteur/largeur de l'appareil du joueur, ou calculez la résolution optimale à l'aide de la formule ci-dessousCalculez la résolution optimale pour un appareil.