> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DirectCapture 概觀

> DirectCapture 以軟體而非透過顯示硬體擷取相容的畫面，可將 XBOX Game Streaming 伺服器延遲減少最多 72 毫秒。

## DirectCapture

DirectCapture 是 XBOX Game Streaming 平台功能，可針對相容的畫面自動將伺服器延遲降至最低。[XGameStreamingGetDisplayDetails](/zh-TW/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) API 可讓您查詢相容畫面的需求，以確保您的遊戲能夠利用 DirectCapture。相容畫面的需求說明如下。

XBOX Game Streaming 串流遊戲的方式是擷取 (複製) 所呈現的畫面，然後對畫面進行編碼以供串流。若未使用 DirectCapture，畫面會使用顯示硬體從輸入呈現參數轉換為用於編碼的格式。畫面在 Present Queue 中有 0-66 毫秒的延遲，然後在經過 Display Writeback (DWB) 擷取畫面時，會再增加 8.3 毫秒的延遲。在 Present Queue 中的時間取決於遊戲的畫面播放速率，以及是否使用雙重或三重緩衝等因素。8.3 毫秒的 Display Writeback 時間固定為 8.3 毫秒，因為它與 HDMI 時脈繫結。

不過，XBOX Game Streaming 伺服器並未連接 HDMI 顯示器，因此 DirectCapture 改用軟體實作而非顯示硬體來縮短這段時間。DirectCapture 藉由消除等候 VSync 以及等候雙重或三重緩衝翻轉等作業，可在大約 2-12 毫秒內擷取畫面以供編碼。這可將延遲減少最多 72 毫秒。

若要獲得較低的延遲，遊戲必須以與 DirectCapture 相容的參數進行呈現。

* 支援的主機模式
  * Lockhart 分析模式
* 支援的遊戲轉譯解析度
  * 任何解析度，包括[自訂解析度](/zh-TW/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview)
* 支援的交換鏈格式
  * DXGI\_FORMAT\_R8G8B8A8\_UNORM
  * DXGI\_FORMAT\_B8G8R8A8\_UNORM
  * DXGI\_FORMAT\_R8G8B8A8\_UNORM\_SRGB
  * DXGI\_FORMAT\_B8G8R8A8\_UNORM\_SRGB
  * DXGI\_FORMAT\_R10G10B10A2\_UNORM
  * DXGI\_FORMAT\_R9G9B9E5\_SHAREDEXP
* 支援的色彩空間
  * DXGI\_COLOR\_SPACE\_RGB\_FULL\_G22\_NONE\_P709

DirectCapture 目前不支援上方未列出的呈現參數。例如，下列項目不受支援：

* 遊戲轉譯解析度：XDK 遊戲的 3840x2160
* HDR
* 多個呈現平面

[XGameStreamingGetDisplayDetails](/zh-TW/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) 可協助判斷要呈現哪些內容才能與 DirectCapture 相容，而 PIX 支援預計將於未來發行。

## 驗證您的作品是否使用 DirectCapture 進行串流

您可以檢查串流記錄檔，以驗證您的作品是否使用 DirectCapture 執行。

### 收集記錄檔

若要收集串流記錄檔：

1. 開始執行遊戲
2. 開始串流並使用其中一個內容測試應用程式 (CTA) 連線
3. 遊玩遊戲的一小段
4. 終止遊戲
5. 中斷 CTA 的連線
6. 等候 30 秒讓記錄完成寫入
7. 將記錄複製到本機目錄，例如 C:\temp
   1. `xbcp xt:\XStreamLogs\XStreamManagementService.etl c:\temp`
   2. `xbcp xt:\XStreamLogs\nanotrace.etl c:\temp`

### 檢視轉換訊息

1. 使用 [Windows Performance Analyzer](https://apps.microsoft.com/store/detail/windows-performance-analyzer/9N0W1B2BXGNZ) 開啟 XStreamManagementService.etl
2. 在左窗格中以滑鼠右鍵按一下 System Activity，然後選擇 "Add graph to Analysis View"
3. 在下方窗格中，展開 Microsoft.Xbox.StreamManagementService
4. 尋找 Microsoft.Xbox.HostStreamingAgent 提供者，並視需要展開它。如果找不到，請重複上述收集記錄檔的步驟。
5. 選取 DirectCaptureLog 工作，並視需要展開 Unknown Process
6. 向右捲動，並尋找名為 0\_Message、1\_Message 等的資料行。每一個都是依序來自 DirectCapture 的訊息。如果有多個資料列，則會依時間排序。
7. 如需每則訊息的意義，請參閱下表。這些訊息會提供 DirectCapture 轉換的順序，以及 DirectCapture 遭停用之任何情況的原因。

| 訊息識別碼 | 訊息 |
| - | - |
| 1 | 切換至 DirectCapture |
| 2 | 切換至 DWB (DirectCapture 已停用) |
| 3 | 不支援的轉譯平面組態。這可能是由於遊戲內轉譯平面，或是系統在作品上方轉譯覆疊 (例如系統通知) 所造成 |
| 4 | 不支援的像素格式。如需遊戲當時的像素格式，請參閱相關聯的 PixelFormat |
| 5 | 不支援的磚模式。如需遊戲當時的磚模式，請參閱相關聯的 TileMode |
| 6 | 不支援的遊戲解析度。請參閱相關聯的 GameResolutionWidth 和 GameResolutionHeight，以查看遊戲當時轉譯的解析度。 |
| 8 | 螢幕上有非遊戲畫面 |
| 12 | 未啟用 DirectCapture (可能是由於不支援的主機模式) |
| 18 | 不支援的來源矩形大小 |
| 19 | 不支援的 Present 參數旗標 |
| 21 | 不支援的目的地矩形大小 |

### 詳細畫面資訊

1. 使用 Windows Performance Analyzer 開啟 nanotrace.etl
2. 瀏覽至 "Microsoft.Xbox.CloudStreaming" 提供者並選取 "VideoFrameCaptureSourceChanged" 工作，然後展開處理程序 "ApplicationClipService.exe"，以查看所有 "VideoFrameCaptureSourceChanged" 事件。
3. 檢查 "NewCaptureSource" 欄位
   * 當值為 "DCap" 時，表示您的作品從此時開始以 DirectCapture 的較低延遲進行串流
   * 值為 "DWB" 表示未使用 DirectCapture，而是使用預設擷取機制。這會在下列情況發生：
     * 作品輸出與 DirectCapture 不相容的畫面
     * 系統在作品上方轉譯覆疊 (例如系統通知)

## 注意事項

* nanotrace.etl 的歷程記錄有限，因此如果您沒有看到 "VideoFrameCaptureSourceChanged"，可能是您的工作階段太長。若要驗證，請執行較短的工作階段並檢查 ETL。
* 開發套件上的 DirectCapture 支援僅限於 XBOX Series X 開發套件
* 如需詳細資訊，請觀看 [XBOX Game Streaming: Reducing Latency and Optimizing for the Best Mobile Experiences](https://www.youtube.com/watch?v=-WIXftoHCl4)。

## 另請參閱

[自訂解析度概觀](/zh-TW/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview)


## Related topics

- [DirectCapture Overview](/build/core-features/common/game-streaming/game-streaming-directcapture-overview.md)
- [DirectCapture 概述](/zh-CN/build/core-features/common/game-streaming/game-streaming-directcapture-overview.md)
- [DirectCapture 개요](/ko/build/core-features/common/game-streaming/game-streaming-directcapture-overview.md)
- [DirectCapture の概要](/ja-jp/build/core-features/common/game-streaming/game-streaming-directcapture-overview.md)
- [Información general de DirectCapture](/es/build/core-features/common/game-streaming/game-streaming-directcapture-overview.md)
