> ## 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.

# Setting up your XBOX Development Kit for streaming

> Setting up your XBOX Development Kit for streaming

Use this topic to setup your XBOX Development Kit to create and validate titles while streaming.

With streaming, you can support direct local streaming to a special streaming client by using the [Android Content test application](/build/core-features/common/game-streaming/game-streaming-android-content-test-application) or [Windows PC Content test application](/build/core-features/common/game-streaming/game-streaming-windows-pc-content-test-application).

You can also use Cloud Aware development to support and validate your title by using [Cloud Aware APIs](/reference/system/xgamestreaming/xgamestreaming_members). These APIs behave on an XBOX Development Kit, with streaming support, similarly to a XBOX Game Streaming server.

## Prerequisites

To setup your dev kit for streaming, ensure that it's running an OS of November 2019 or later and connected to the network.

<Note>XBOX Game Streaming isn't available on XBOX One S Dev Kit dev kits. The XBOX Series X Dev Kit hardware isn't equivalent to the hardware that's running the XBOX Game Streaming server, but it provides the best approximation for CPU performance when accessing XBOX Game Streaming servers.</Note>

### Enable Developer Mode

Enable **Developer Mode** on your XBOX Development Kit with the following steps.

1. Open **Settings** and select **System** > **Console Info** > **Developer Settings**.
2. Enable **Developer Mode**.
3. Restart the XBOX Development Kit.

<Note>If **Developer Settings** isn't available, with your controller quickly select **LB** > **RB** > **LT** > **RT** to enable **Developer Settings** in the UI.</Note>

### Enable the streaming service

You can control the streaming service from the **Streaming** tab of Dev Home, or via the [xbgamestream (NDA topic)](/tools/tools-console/commandlinetools/xbgamestream) command line tool.

<Note>Only one remote stream is allowed at a time from the development console. In other words, you can't utilize the remote view capabilities of [XBOX Manager (NDA topic)](/tools/tools-console/xbom/xbom) while also using a [game streaming client](/build/core-features/common/game-streaming/game-streaming-windows-pc-content-test-application). Whichever client connects most recently will be the one that receives audio and video.</Note>

By default, the streaming service doesn't listen for local connections. To start it, go to the **Streaming** tab. Find "Direct Connect" toggle and turn it on. The service starts after a few seconds.

<Note>After each restart of the XBOX Development Kit, return to the **Streaming** tab of Dev Home to connect to the streaming service again as shown in the following screenshot.</Note>

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/game-streaming-console-streaming-off.png?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=7e05ba22797061a985b99dc40e47e291" alt="Screenshot of the Streaming tab in Dev Home" width="1920" height="1080" data-path="images/gdk/features/common/game-streaming-console-streaming-off.png" />

After a short startup delay, the Cloud Streaming service runs with a status change of the toggle that's visible in the **Streaming** tab of Dev Home as shown in the following screenshot.

You can perform a direct connect by using the Content test application (CTA) client and providing the main console IP address that's used to connect to the client.

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/game-streaming-console-streaming-on.png?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=f7d1a4155c20c620fe255b3676011159" alt="Screenshot of the Cloud Streaming status changed in Dev Home" width="2318" height="1303" data-path="images/gdk/features/common/game-streaming-console-streaming-on.png" />

<Note>It isn't necessary to stop and restart this service unless there are connectivity problems.</Note>

### Stream Configuration

The streaming configuration controls various aspects of the stream such as the resolution or bitrate. The streaming configuration for direct connect can be modified via the **Streaming Configuration** dropdown menu which contains a couple base configurations.

#### Overrides

In more advanced scenarios, you can override specific settings of the base stream configuration for both direct connect and remote connect.

<Note>Overrides do not perist between reboots so they must be reset if desired.</Note>

<Note>Overrides are only applied to direct connect when it restarts "listening for connections" and on new connections for remote connect.</Note>

Overrides can be viewed and configured in the **Streaming** tab using the **Stream Configuration Overrides** panel in the bottom right (or by the xbgamestream tool).

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/game-streaming-dev-home-streaming-config-override.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=d62f5277782723bc97942f40f30824a1" alt="Screenshot of the config override panel" width="1920" height="1080" data-path="images/gdk/features/common/game-streaming-dev-home-streaming-config-override.png" />

New overrides can be added with the **Add** button in the top left of the panel which will open up a window where the key and value can be specified. Existing overrides can be edited from the **Edit** option in the context menu which opens a similar window. Specific overrides can be deleted by the **Clear** option in the context menu and all overrides can be deleted by the **Clear All** button at the top of panel. The current set of configurable settings are as follows.

| Key                | Description                                                                                      |
| :----------------- | :----------------------------------------------------------------------------------------------- |
| allowDirectCapture | Boolean for enabling and disabling direct capture. Default value: <i>true</i>                    |
| maxBitrate         | Maximum bitrate of the video stream. Example value: <i>12000000</i>                              |
| minBitrate         | Minimum bitrate of the video stream. Example value: <i>5000000</i>                               |
| maxResolution      | The suggested maximum resolution of the video stream. Example values: <i>720p</i>, <i>1080p</i>. |
| minResolution      | The suggested minimum resolution of the video stream. Example values: <i>720p</i>, <i>1080p</i>. |

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/game-streaming-dev-home-streaming-config-override-add.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=eee3d37b6fd5a472865eab47a5f4b668" alt="Screenshot of the add override window" width="960" height="540" data-path="images/gdk/features/common/game-streaming-dev-home-streaming-config-override-add.png" />

## Troubleshooting

Use the following sections to resolve issues you experience while setting up your XBOX Development Kit for XBOX Game Streaming.

### Network configuration to allow access to XBOX Development Kit streaming

To connect by using the CTA, enable UDP Port 9002 for communication and streaming between the CTA and the XBOX Development Kit.

### CTA can't connect to XBOX Development Kit

Use the following steps to resolve connectivity issues between the CTA and dev kit.

1. Ensure that the IP address of the console that's used by the client is correct.
2. Ensure that the streaming service is running by checking the **Streaming** tab of Dev Home.
3. Stop and start the streaming service on the **Streaming** tab of Dev Home.
4. Ensure that the streaming protocol version that's used by the client matches the selected streaming protocol version on the XBOX Development Kit.

### Managing different communication protocol versions

There are different communication protocol versions needed for streaming. The game streaming service will switch protocol automatically based on the request from the client which triggers a connection.

## Reference API documentation

* [Xgamestreaming (API contents)](/reference/system/xgamestreaming/xgamestreaming_members)


## Related topics

- [Streaming page (Dev Home)](/tools/tools-console/devhome/devhome-streaming.md)
- [Optimizing your game for XBOX Game Streaming](/build/core-features/common/game-streaming/game-streaming-optimizing-your-game.md)
- [Android Content Test Application (CTA) overview (Deprecated)](/build/core-features/common/game-streaming/game-streaming-android-content-test-application.md)
- [XBOX services sandboxes overview](/services/xbox-services/fundamentals/sandboxes/live-setup-sandbox.md)
- [Streaming your game](/build/core-features/common/game-streaming/game-streaming-stream-your-game.md)
