# Live Streaming

Use the **Video Screen** smart item together with the **Scene Admin** smart item to stream live video into your scene.

Decentraland offers different ways to stream live video into your scene:

* **DCL Cast** *(Easy Mode)*: Use Decentraland's free streaming web app to easily share your camera or screen with other players in the scene, no need to set up a streaming software. This mode has the lowest latency and is the easiest to set up.
* **Stream** *(Advanced Mode)*: Use a streaming software like [OBS](https://obsproject.com/) to stream through Decentraland's streaming infrastructure. This mode allows you to have more control over the stream, like screen layout and audio sources.
* **Video URL** *(Advanced Mode)*: Point to your own streaming infrastructure, by pasting the URL into the **Video URL** field.

![Stream methods](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4a5f55b4e645c0ffe6aefffd3f03c2dba5998e02%2Fstreaming-modes.png?alt=media)

Streaming works in Worlds and Genesis City, with no audience limits on the scene side.

## Configure the scene

The following steps are common to both DCL Cast and Stream methods:

1. Add a **Video Screen** smart item to your scene.

   ![](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-01d7193f1148aa3fc6d53232dfb403cc815b6bce%2Fvideo-player-item.png?alt=media)
2. Add a **Scene Admin** smart item and enable the **Video Screens** section. Select each screen from the dropdown and give it a friendly name for the admin UI.

   ![](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-7c055a56398873268285f83c53eade303d1024cc%2Fmulti-video-setup.png?alt=media)
3. Publish your scene (World or Genesis City) and enter as a user with admin permissions.

   ![](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-65dd1ffe91c288af2ae1f3b7ce92c7fcb12668f9%2Fpublish-button.png?alt=media)

Once your scene is published, you can enter as a user with admin permissions and configure the streaming settings.

{% hint style="info" %}
**💡 Tip**: If you add multiple Video Screens, configure all but one's source to point to the same video player, see [Multiple Video Screens](https://docs.decentraland.org/creator/interactivity/video-screen#multiple-video-screens) for more details.
{% endhint %}

## DCL Cast

### Sharing access to the app

Enter your published scene as an admin user, and open the admin panel. Select the **Video** tab, then select the **DCL Cast** functionality.

![DCL Cast](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-30fd22f76c104ca0826210e291ba377e9bb11d51%2Fdcl-cast.png?alt=media)

You'll see two links that you can copy and share with others.

* **Cast Speakers**: This link is for the speakers to use to cast their video to the scene.

  <div data-gb-custom-block data-tag="hint" data-style="danger" class="hint hint-danger"><p><strong>❗Warning</strong>: Treat the steaming link as a secret, only share it with people you trust. Reset the link between presenters if needed.</p><p>Only one person can stream to a scene at a time. When finished streaming, close the DCL Cast browser tab to free the channel.</p></div>
* **Viewers**: This link is for the audience to use to watch the video from a browser. This is useful for players who are currently not inside Decentraland, or even on a mobile device.

Click the **Copy link** button to copy the links to the clipboard.

When ready to stream, click the **Activate** button to make the stream visible to the audience in the scene.

![Activate stream](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-d02037369d613aa59b3870b5cbad2a5914434f2a%2Factivate.png?alt=media)

If for any reason you need to reset the room, click the **Reset Room** button to generate a new one. Anyone who's currently streaming will be disconnected.

![Reset room](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-22a6f37702b2d6db0aa395f73f820825ef02642d%2Freset-room.png?alt=media)

### Using the DCL Cast app

When someone pastes the speaker link into a browser, they'll see a screen like this:

![DCL Cast app](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-827cf2d40b68a2da0e0a104f3fc78621ffb13bbe%2Fdcl-cast-landing.png?alt=media)

The browser will ask for permission to share your camera and microphone. You can also configure the different input devices to use for the stream.

{% hint style="info" %}
**📔 Tip**: Use Google Chrome or a browser built on the Chrome engine. These browsers offer the functionality to easily share both video and audio directly from a browser tab.
{% endhint %}

Users can input a name (doesn't need to match their Decentraland username) and click the **Join Now** button to start streaming.

Once streaming, the app is similar to various familiar video conferencing apps, with buttons to mute/unmute, share camera and screen, and a chat interface.

The chat is read-only, and listens to all messages sent by players inside the scene in Decentraland. This is great to keep in touch with the audience, even if you're streaming from a different device.

![DCL Cast app](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-18632ba0a6e0d2970bad889f0aeeabce9ffc522d%2Fdcl-cast-app.png?alt=media)

On the **Participants** tab you can see three lists:

* **Speakers**: The people who are currently streaming to the scene.
* **Viewers**: The people who are currently watching the stream from a browser.
* **In-world participants**: The players who are currently inside the scene, watching the stream in-world.

![Participants tab](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f76c901dcdc1524efac9385c3a02431c9e23a051%2Fparticipants.png?alt=media)

## Stream method

To use the Live Streaming feature on your scene you'll need to install a streaming software that can output to an RTMP endpoint (e.g. [OBS](https://obsproject.com/), [XSplit](https://www.xsplit.com/), [StreamYard](https://streamyard.com/)).

### Get stream credentials

1. Open the Admin UI in the scene (top‑right icon).

   ![](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6cae96494f3809c3b4e4da9a55b1fa9c46922c48%2Fadmin-icon.png?alt=media)
2. In the **Video** tab, switch to **Live** and click **Get Stream Key**.

   ![](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-14884b1619291b1390e768ab51817c57bf5e7eb6%2Fget-key.png?alt=media)
3. Copy the **RTMP Server** and **Stream Key** into your streaming software.

   ![OBS configuration](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-8c58e22eb160f37855f2403a738ec4d906783513%2FOBS-configuration.png?alt=media)

{% hint style="danger" %}
**❗Warning**: Only one person can stream to a scene at a time. When finished streaming, click **Stop Streaming** in your software to free the channel.
{% endhint %}

### Start and control the stream

1. Start streaming from your software.
2. In the Admin UI, click **Activate** to show the stream in the scene.

   ![Activate stream](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-d02037369d613aa59b3870b5cbad2a5914434f2a%2Factivate.png?alt=media)

### Stream keys

Stream keys are generated per scene and are valid for 4 days (96 hours). A single live session can run up to 4 hours continuously.

![](https://45449780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6b62708bc8ce0cd2fa1e5f514cb0ea06ac28b7ff%2Flive-stream-settings.png?alt=media)

* Click **Reset Stream Key** to revoke the current key and issue a new one. Ongoing streams will stop.
* Each scene has its own streaming address and key. Admins can share the key with external streamers.
* Only one stream can be active per scene at a time; starting a new one will overwrite the current stream.

{% hint style="danger" %}
**❗Warning**: Treat stream keys as secrets. Reset the key between presenters if needed.
{% endhint %}

## Streaming from URL method

You can also stream using third‑party infrastructure by configuring the Video Screen to **Video URL** and pasting a stream URL.

* The URL must be `https` and CORS‑enabled by the provider (YouTube and similar sites won’t allow direct playback). See [About External Streaming](https://docs.decentraland.org/creator/scenes-sdk7/media/video-playing#about-external-streaming).
* Managed providers include [Vimeo](https://vimeo.com/), [Livepeer Studio](https://livepeer.studio/) and [Serraform](https://serraform.gitbook.io/streaming-docs/guides/decentraland-playback).
* Tips for encoder setup: [Setting up OBS for successful streaming](https://docs.decentraland.org/creator/scenes-sdk7/media/video-playing#setting-up-obs-for-successful-streaming).
