View a markdown version of this page

Benutzerdefinierte Stream-Auflösung in Amazon GameLift Streams - GameLift Amazon-Streams

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Benutzerdefinierte Stream-Auflösung in Amazon GameLift Streams

Standardmäßig liefert Amazon GameLift Streams interaktive Streams mit der branchenüblichen Full-HD-Auflösung von 1920 × 1080 Pixeln in einem Standard-Seitenverhältnis von 16 mal 9. Sie können für jede Sitzung eine benutzerdefinierte Auflösung festlegen, die der Bildschirmform oder dem Seitenverhältnis des Geräts des Players entspricht. Benutzerdefinierte Auflösungen unterstützen die Seitenverhältnisse Querformat, Hochformat und Quadrat.

Verwenden Sie benutzerdefinierte Auflösungen, um:

  • Streamen Sie Vollbilderlebnisse auf Smartphones und Tablets im nativen Seitenverhältnis des Geräts, ohne Auffüllen oder Zuschneiden.

  • Passen Sie die Seitenverhältnisse für ultrabreite Monitore an, um ein natives Breitbildformat zu erzielen.

  • Support Spielestreams mit beliebigen Abmessungen für die Einbettung in Weberlebnisse, die nicht im Vollbildmodus angezeigt werden.

Sie können die benutzerdefinierte Auflösung mit allen Amazon GameLift Streams-Servicekonfigurationen verwenden, unabhängig von der Stream-Klasse oder der Laufzeitumgebung.

Wie funktioniert die Auflösung

Wenn Sie eine benutzerdefinierte Auflösung festlegen, konfiguriert Amazon GameLift Streams den virtuellen Monitor der Sitzung auf die gewünschte Auflösung. Dies wird die Monitorauflösung für die Sitzung. Um eine optimale visuelle Qualität zu erzielen, muss die Anwendung mit der konfigurierten Bildschirmauflösung rendern.

Die Bildschirmauflösung bestimmt die Abmessungen des virtuellen Monitors und die Auflösung, mit der Bilder aufgenommen werden. Zwei zusätzliche Web-SDK-Einstellungen wirken sich auf die Auflösung des Streams aus, der an den Player übertragen wird:

  • Maximale Auflösung: Eine Web-SDK-Einstellung, die die Streamauflösung begrenzt. Wenn nicht angegeben, wird keine Obergrenze angewendet und die volle Bildschirmauflösung wird gestreamt. Siehe Interaktion mit maximaler Auflösung.

  • Dynamische Auflösung: Passt die Streamauflösung automatisch an, um die beste visuelle Qualität zu erzielen, die die Netzwerkverbindung des Betrachters aufrechterhalten kann. Siehe Interaktion mit dynamischer Auflösung.

Keine der Einstellungen ändert die Monitorauflösung für die Sitzung.

Benutzerdefinierte Auflösungsbeschränkungen

Die von Ihnen angegebene Auflösung muss die folgenden Anforderungen erfüllen:

Einschränkung Wert
Maximale Gesamtzahl an Pixeln 2.073.600 (1920 × 1080)
Breiten- und Höhenbereich 320 — 4096 Pixel
Dimensionsparität Sowohl Breite als auch Höhe müssen gerade Zahlen sein

Der Dienst überprüft diese Einschränkungen, wenn Sie eine Sitzung starten. Wenn die Lösung die Anforderungen nicht erfüllt, schlägt die Anforderung mit einem Validierungsfehler fehl.

Stellen Sie eine benutzerdefinierte Auflösung ein

Sie können eine benutzerdefinierte Auflösung festlegen, wenn Sie eine Stream-Sitzung über die Konsole, die AWS CLI oder die API starten.

Verwenden der Amazon GameLift Streams-Konsole

Um einen Stream mit einer benutzerdefinierten Auflösung zu testen:

  1. Öffnen Sie die Amazon GameLift Streams-Konsole und navigieren Sie zu Ihrer Stream-Gruppe.

  2. Wählen Sie Stream testen.

  3. Wählen Sie in der Dropdownliste Auflösung eine Auflösung für Desktop-, Tablet- oder Mobilgeräte aus.

  4. Wählen Sie Stream testen, um die Sitzung zu starten.

Nachdem der Stream aktiv ist, können Sie die aktuelle Auflösung im Statistik-Overlay in Echtzeit einsehen.

Verwendung der AWS CLI

Verwenden Sie den start-stream-session Befehl mit dem --display-configuration Parameter:

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

Verwenden der API

Fügen Sie in der StartStreamSessionAPI-Anfrage den folgenden DisplayConfiguration Parameter ein:

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

Berechnen Sie die optimale Auflösung für ein Gerät

Sie können jede Auflösung verwenden, die die Auflösungsbeschränkungen erfüllt. Die folgende Formel ist ein empfohlener Ansatz, um die größte Auflösung für ein bestimmtes Seitenverhältnis zu ermitteln. Sie maximiert die verfügbaren Pixel für die beste visuelle Qualität:

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

In dieser Formel W:H ist das Ziel-Seitenverhältnis und 2,073,600 die maximale Gesamtpixelzahl (1920 × 1080). Die Funktion floor_to_even(x) rundet auf die nächste gerade Ganzzahl ab.

Beispiel 19. 5:9 (Mobiltelefon)
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)

Für Auflösungen im Hochformat berechnen Sie die Auflösung im Querformat und tauschen Sie die Werte für Breite und Höhe aus.

Allgemeine Auflösungswerte für Geräte

Bei den folgenden Werten werden allgemeine Standardverhältnisse verwendet, die gängige Gerätekategorien abdecken. Einzelne Geräte können leicht unterschiedliche native Seitenverhältnisse haben, was zu optisch vernachlässigbaren schwarzen Balken führt. Verwenden Sie für eine pixelgenaue Füllung das exakte native Seitenverhältnis des Geräts mit der obigen Formel.

Kategorie Seitenverhältnis Landschaft Porträt Passende Geräte
Desktop 16:9 1920 × 1080 1080 × 1920 Desktop-Monitore, Fernseher, HD-Handys
Desktop 16:10 1820 × 1138 1138 × 1820 Breitbildmonitore, Amazon Fire-Tablets
Desktop 21:9 2198 × 942 Nicht zutreffend Ultrabreite Monitore
Tablet 3:2 1760 × 1174 1174 × 1760 Verschiedene iPads
Tablet 4:3 160 × 1246 1246 × 1660 iPads, Android-Tablets
Mobil 20:9 2142 × 964 964 × 2142 Google Pixel, Samsung Galaxy
Mobil 19,5:9 218 × 978 978 × 2118 iPhones, Samsung Galaxy
Mobil 18:9 2036 × 1018 1018 × 2036 Andere Android-Handys
Sonstige 1:1 1440 × 1440 Nicht zutreffend Quadratische Monitore

Interaktion mit maximaler Auflösung

Benutzerdefinierte Auflösung und maximale Auflösung dienen unterschiedlichen Zwecken:

  • Benutzerdefinierte Auflösung: Wenn Sie eine benutzerdefinierte Auflösung festlegen, wird diese zur Monitorauflösung für die Sitzung. Dies ist, was der Server rendert, einschließlich des Seitenverhältnisses und der Pixelabmessungen der aufgenommenen Frames.

  • Maximale Auflösung: Eine Web-SDK-Einstellung, die die Streamauflösung begrenzt. Die Obergrenze passt innerhalb des ausgerichteten Begrenzungsrahmens der ausgewählten Ebene (z. B. 1280 × 720 für 720p). Verwenden Sie diese Einstellung, um Geräte der unteren Preisklasse anzusprechen, die ein Bild mit voller Auflösung nicht dekodieren können.

Weitere Informationen zum Parameter für die maximale Auflösung finden Sie in der Amazon GameLift Streams Web SDK API-Referenz auf der Amazon GameLift Streams-Dokumentationsseite.

Interaktion mit dynamischer Auflösung

Die dynamische Auflösung passt die Streamauflösung automatisch an, um die beste visuelle Qualität zu erzielen, die die Netzwerkverbindung des Betrachters aufrechterhalten kann. Diese Funktion ist mit Amazon GameLift Streams Web SDK Version 1.3.0 und höher verfügbar.

Die dynamische Auflösung hat keinen Einfluss auf die Monitorauflösung für die Sitzung. Amazon GameLift Streams passt nur die dem Player übermittelte Stream-Auflösung an. Wenn die Bandbreite begrenzt ist, wird die Stream-Auflösung unter Beibehaltung des Seitenverhältnisses herunterskaliert. Wenn die Bandbreite wiederhergestellt ist, wird sie wieder auf die volle Bildschirmauflösung oder die maximale Auflösungsobergrenze hochskaliert.

Wenn Sie beispielsweise eine benutzerdefinierte Auflösung von 1080 × 1920 (mobiles Portrait, 9:16) festlegen, empfängt der Player den vollen 1080 × 1920-Stream bei normaler Bandbreite. Wenn das Netzwerk des Players eingeschränkt wird, kann die dynamische Auflösung den Stream unter Beibehaltung des Seitenverhältnisses von 9:16 auf eine niedrigere Auflösung herunterskalieren (z. B. 720 × 1280). Die Monitorauflösung auf dem Server bleibt durchgehend 1080 × 1920.

Weitere Informationen zum dynamischen Auflösungsparameter finden Sie in der Amazon GameLift Streams Web SDK API-Referenz auf der Amazon GameLift Streams-Dokumentationsseite.

Bewährte Methoden

Folgen Sie diesen bewährten Methoden, wenn Sie benutzerdefinierte Auflösungen mit Amazon GameLift Streams verwenden:

  • Passen Sie das Seitenverhältnis des Players so an, dass es den gesamten Bildschirm ausfüllt, ohne Letterboxing oder Pillarboxing. Verwenden Sie die üblichen Auflösungswerte oder die Berechnungsformel, um die optimale Auflösung für ein bestimmtes Seitenverhältnis zu ermitteln. Verwenden Sie für Handyspiele im Hochformat eine Hochformatauflösung, um ein natives vertikales Spielerlebnis zu bieten.

  • Optimieren Sie Ihr Frontend für das Streaming-Erlebnis. Stellen Sie sicher, dass Ihr Webclient das Seitenverhältnis des Streams korrekt verarbeitet, wenn Sie auf Mobilgeräte oder Tablets streamen.

  • Testen Sie Ihre Anwendung mit benutzerdefinierten Auflösungen, bevor Sie sie auf Playern bereitstellen. Die meisten Anwendungen passen sich automatisch an die Bildschirmauflösung an, wenn sie im Vollbildmodus ausgeführt werden. Einige Anwendungen können jedoch Auflösungen, die nicht im 16:9 -Format liegen, möglicherweise nicht ordnungsgemäß verarbeiten.

  • Achte darauf, dass deine Kamera und die Benutzeroberfläche im Spiel sich an das Seitenverhältnis anpassen. Passen Sie das Sichtfeld der Spielkamera so an, dass der entsprechende Teil der Szene angezeigt wird, anstatt das Ansichtsfenster zuzuschneiden. Lassen Sie die Elemente der Benutzeroberfläche neu fließen oder positionieren Sie sie neu, sodass sie dem neuen Seitenverhältnis entsprechen.

  • Vermeiden Sie es, die Auflösung des virtuellen Monitors während der Laufzeit in Ihrer Anwendung zu ändern. Amazon GameLift Streams legt die Monitorauflösung fest, wenn die Sitzung gestartet wird. Anwendungen, die sie während des Spiels ändern, können zu unerwarteten Ergebnissen führen.

  • Kümmere dich um die Geräterotation in deiner Anwendung und deinem Frontend. Die Bildschirmauflösung ist für die Dauer der Sitzung festgelegt. Um die Geräterotation während des Streams zu unterstützen, empfehlen wir, das Rotationssignal Datenkanalkommunikation zwischen einer Anwendung und einem Webclient an die Anwendung weiterzuleiten. Lassen Sie die Anwendung das Rendern rotieren und aktualisieren Sie Ihr Frontend entsprechend.

Fehlerbehebung

In der folgenden Tabelle werden häufig auftretende Probleme, ihre Ursachen und Lösungsvorschläge beschrieben.

Problem Ursache Lösung
Die Sitzung kann mit einem Validierungsfehler nicht gestartet werden Die Auflösung entspricht nicht den Einschränkungen Stellen Sie sicher, dass Ihre Auflösung alle unter aufgeführten Einschränkungen erfülltBenutzerdefinierte Auflösungsbeschränkungen.
Die Anwendung rendert mit der falschen Auflösung Die Anwendung läuft nicht im Vollbildmodus oder wird im Fenstermodus mit einer anderen Auflösung gerendert Konfigurieren Sie die Anwendung so, dass sie im Vollbildmodus ausgeführt wird. Die Anwendung kann das System nach der konfigurierten Auflösung abfragen.
Die Stream-Auflösung ist niedriger als erwartet (gleiches Seitenverhältnis) Die maximale Auflösungsobergrenze oder dynamische Auflösung ist aktiv Dieses Verhalten ist zu erwarten, wenn die maximale Auflösung oder dynamische Auflösung aktiv ist. Beide Funktionen reduzieren die Streamauflösung unter Beibehaltung des Seitenverhältnisses. Überprüfen Sie die Einstellung für die maximale Auflösung oder dynamische Auflösung im Web SDK.
Die Streamauflösung unterscheidet sich von der benutzerdefinierten Auflösung (anderes Seitenverhältnis) Die Anwendung ändert die Bildschirmauflösung während des Starts oder während des Streams Maximale Auflösung und dynamische Auflösung verursachen dieses Problem nicht. Dieses Verhalten ist bei einigen Anwendungen bekannt, die die Monitorauflösung überschreiben. Erwägen Sie, eine Anwendung zu verwenden, die die Monitorauflösung nicht überschreibt, oder konfigurieren Sie die Anwendung so, dass sie im Vollbildmodus mit der Bildschirmauflösung rendert.
Auf dem Bildschirm des Players erscheinen schwarze Balken Das Seitenverhältnis zwischen Stream und Gerät stimmt nicht überein, oder die Anwendung rendert intern mit schwarzen Balken Prüfen Sie, ob die schwarzen Balken vom Client (nicht übereinstimmendes Seitenverhältnis) oder von der Anwendung selbst stammen. Verwenden Sie einen Auflösungswert, der dem Seitenverhältnis des Player-Geräts entspricht, oder berechnen Sie die optimale Auflösung anhand der Formel inBerechnen Sie die optimale Auflösung für ein Gerät.