本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon GameLift Streams 中的自訂串流解析度
根據預設,Amazon GameLift Streams 會以 1920 × 1080 像素的業界標準全 HD 解析度,以標準 16 x 9 長寬比提供互動式串流。您可以為每個工作階段設定自訂解析度,以符合玩家裝置的螢幕形狀或長寬比。自訂解析度支援橫向、縱向和方形長寬比。
使用自訂解析度來:
-
以原生裝置長寬比將全螢幕體驗串流至手機和平板電腦,無需填補或裁切。
-
符合超寬監視器長寬比,以獲得原生寬螢幕體驗。
-
支援具有任意維度的遊戲串流,可在non-full-screen體驗中嵌入。
無論串流類別或執行時間環境為何,您都可以搭配所有 Amazon GameLift Streams 服務組態使用自訂解析度。
解析度的運作方式
當您設定自訂解析度時,Amazon GameLift Streams 會將工作階段的虛擬監視器設定為所需的解析度。這將成為工作階段的監視器解析度。為了獲得最佳視覺效果品質,應用程式必須轉譯為設定的監視器解析度。
監視器解析度會決定虛擬監視器的維度,以及擷取影格的解析度。兩個額外的 Web SDK 設定會影響交付給玩家的串流解析度:
設定都不會變更工作階段的監視器解析度。
自訂解析度限制
您指定的解決方案必須符合下列要求:
| 限制條件 | Value |
|---|---|
| 像素總計上限 | 2,073,600 (1920 × 1080) |
| 寬度和高度範圍 | 320 – 4096 像素 |
| 維度同位 | 寬度和高度都必須是偶數 |
當您啟動工作階段時,服務會驗證這些限制條件。如果解決方案不符合要求,請求會失敗並出現驗證錯誤。
設定自訂解析度
您可以在使用主控台、CLI AWS 或 API 啟動串流工作階段時設定自訂解析度。
使用 Amazon GameLift Streams 主控台
若要使用自訂解析度測試串流:
-
開啟 Amazon GameLift Streams 主控台
並導覽至您的串流群組。 -
選擇測試串流。
-
在解析度下拉式清單中,選取桌上型電腦、平板電腦或行動裝置的解析度。
-
選擇測試串流以啟動工作階段。
串流處於作用中狀態後,您可以在即時統計資料浮水印中檢視目前的解析度。
使用 AWS CLI
使用 start-stream-session命令搭配 --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}}'
使用 API
在 StartStreamSession API 請求中,包含 DisplayConfiguration 參數:
{ "ApplicationIdentifier": "a-ExampleApp", "Protocol": "WebRTC", "SignalRequest": "your-signal-request", "DisplayConfiguration": { "Resolution": { "Width": 1920, "Height": 1080 } } }
計算裝置的最佳解析度
您可以使用任何符合解析度限制的解析度。以下公式是尋找特定長寬比最大解析度的一種建議方法。它會將可用像素最大化,以獲得最佳視覺品質:
height = floor_to_even( sqrt(2,073,600 * H / W) ) width = floor_to_even( height * W / H )
在此公式中, W:H 是目標長寬比,而 2,073,600是像素總數上限 (1920 × 1080)。函數會floor_to_even(x)四捨五入至最接近的偶整數。
範例 19.5:9 (行動電話)
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)
對於縱向解析度,計算橫向解析度並交換寬度和高度值。
裝置的一般解析度值
下列值使用涵蓋常見裝置類別的一般標準比率。個別裝置可能有略有不同的原生長寬比,從視覺上可忽略黑色長條。對於完美像素填充,請使用裝置的確切原生長寬比搭配上述公式。
| Category | 長寬比 | 橫向 | 縱向 | 比對裝置 |
|---|---|---|---|---|
| 桌面 | 16:9 | 1920 × 1080 | 1080 × 1920 | 桌面監視器、TVs、HD Mobile |
| 桌面 | 16:10 | 1820 × 1138 | 1138 × 1820 | 寬螢幕監視器、Amazon Fire 平板電腦 |
| 桌面 | 21:9 | 2198 × 942 | 不適用 | 超全螢幕 |
| 平板電腦 | 3:2 | 1760 × 1174 | 1174 × 1760 | 各種 iPads |
| 平板電腦 | 4:3 | 1660 × 1246 | 1246 × 1660 | iPads、Android 平板電腦 |
| 行動應用程式 | 20:9 | 2142 × 964 | 964 × 2142 | Google Pixel、Samsung Galaxy |
| 行動應用程式 | 19.5:9 | 2118 × 978 | 978 × 2118 | iPhonesSamsung Galaxy |
| 行動應用程式 | 18:9 | 2036 × 1018 | 1018 × 2036 | 其他 Android 手機 |
| 其他 | 1:1 | 1440 × 1440 | 不適用 | 方形監視器 |
與最大解析度的互動
自訂解析度和最大解析度有不同的用途:
-
自訂解析度:當您設定自訂解析度時,它會成為工作階段的監視器解析度。這是伺服器轉譯的內容,包括擷取影格的長寬比和像素維度。
-
最高解析度:限制串流解析度的 Web 開發套件設定。上限符合所選層的方向週框方塊 (例如,720p 為 1280 × 720)。使用此設定以無法解碼完整解析度映像的低端裝置為目標。
如需最大解析度參數的詳細資訊,請參閱 Amazon GameLift Streams 文件頁面上的 Amazon GameLift Streams Web SDK API 參考。
與動態解析度的互動
動態解析度會自動調整串流解析度,以提供檢視器網路連線可維持的最佳視覺品質。此功能適用於 Amazon GameLift Streams Web SDK 1.3.0 版及更新版本。
動態解析度不會影響工作階段的監視器解析度。Amazon GameLift Streams 只會調整交付給玩家的串流解析度。當頻寬有限時,串流解析度會縮減,同時保留長寬比。當頻寬復原時,它會縮減至完整監視器解析度或最高解析度上限。
例如,如果您將自訂解析度設定為 1080 × 1920 (行動縱向,9:16),則玩家會在正常頻寬下接收完整的 1080 × 1920 串流。如果玩家的網路受限,動態解析度可能會將串流縮減到較低的解析度 (例如 720 × 1280),同時維持 9:16 長寬比。伺服器上的監視器解析度在整個過程中保持 1080 × 1920。
如需動態解析度參數的詳細資訊,請參閱 Amazon GameLift Streams 文件頁面上的 Amazon GameLift Streams Web SDK API 參考。
最佳實務
搭配 Amazon GameLift Streams 使用自訂解析度時,請遵循下列最佳實務:
-
比對玩家的裝置長寬比,以填滿畫面,無需字母框或柱框。使用常見的解析度值或計算公式來尋找指定長寬比的最佳解析度。對於縱向行動遊戲,請使用縱向解析度來提供原生垂直體驗。
-
針對串流體驗最佳化您的前端。確保您的 Web 用戶端在串流到行動裝置或平板電腦時正確處理串流的長寬比。
-
在部署到玩家之前,使用自訂解析度測試您的應用程式。大多數應用程式會在全螢幕執行時自動適應監視器解析度。不過,某些應用程式可能無法正常處理非 16:9 解析度。
-
確保您的遊戲中攝影機和 UI 適應長寬比。調整遊戲攝影機的視野,以顯示適當的場景量,而不是裁切檢視區。還原或重新定位 UI 元素以符合新的長寬比。
-
避免在應用程式的執行時間變更虛擬監視器解析度。Amazon GameLift Streams 會在工作階段開始時設定監視器解析度。在遊戲期間修改的應用程式可能會產生非預期的結果。
-
在您的應用程式和前端處理裝置輪換。監視器解析度會在工作階段期間固定。若要支援中串流裝置輪換,建議您將輪換訊號透過 應用程式與 Web 用戶端之間的資料通道通訊 傳送到應用程式。讓應用程式輪換其轉譯,並相應地更新您的前端。
疑難排解
下表說明常見問題、其原因和建議的解決方案。
| 問題 | 原因 | 解決方案 |
|---|---|---|
| 工作階段無法從驗證錯誤開始 | 解決方案不符合限制條件 | 確認您的解析度符合 中列出的所有限制條件自訂解析度限制。 |
| 應用程式以錯誤的解析度轉譯 | 應用程式未以全螢幕執行,或在視窗化模式下以不同的解析度轉譯 | 設定應用程式以全螢幕執行。應用程式可以查詢系統,以取得設定的解析度。 |
| 串流解析度低於預期 (相同的長寬比) | 最高解析度上限或動態解析度為作用中 | 這是最大解析度或動態解析度作用中時的預期行為。這兩個功能都會縮減串流解析度,同時保留長寬比。檢查 Web SDK 中的解析度上限或動態解析度設定。 |
| 串流解析度與自訂解析度不同 (不同的長寬比) | 應用程式會在啟動或中串流期間變更監視器解析度 | 最大解析度和動態解析度不會造成此問題。這是某些覆寫監視器解析度之應用程式的已知行為。考慮使用不會覆寫監視器解析度的應用程式,或將應用程式設定為以全螢幕的監視器解析度進行轉譯。 |
| 黑色長條會出現在玩家的螢幕上 | 串流和裝置之間的長寬比不相符,或應用程式在內部以黑色長條轉譯 | 檢查黑色長條是否來自用戶端 (長寬比不相符) 或在應用程式本身內。使用符合玩家裝置長寬比的解析度值,或使用 中的公式計算最佳解析度計算裝置的最佳解析度。 |