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

<img src="/files/iT553DZvuIl2pwCoBUNz" alt="Stream methods" width="400">

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.

   ![](/files/Kz8YR1z4Hft0RdmcX5Le)
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.

   ![](/files/ObUQmntY23Vz8zwMUfTQ)
3. Publish your scene (World or Genesis City) and enter as a user with admin permissions.

   ![](/files/7sIplvxXBqV1ti3Mllrn)

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 to show the same video, configure all but one's source to point to the same video player, see [Multiple Video Screens](/creator/scene-editor/interactivity/video-screen.md#multiple-video-screens) for more details.
{% endhint %}

## DCL Cast (easy)

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

<img src="/files/KInNHT0zAaNB63DA9t6M" alt="DCL Cast" width="400">

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 or mobile. This is useful for players who are currently not inside Decentraland.

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.

<img src="/files/NNLZhPZxt3gtVmXgCQbL" alt="Activate stream" width="150">

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.

<img src="/files/NVbDSJuq0bD6v5Lbij8L" alt="Reset room" width="150">

### Using the DCL Cast app

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

<img src="/files/R1T5fOGaFk1Ur1Gbh0P5" alt="DCL Cast app" width="400">

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.

<img src="/files/jFwF1tz1BjIiAm5mFcNC" alt="DCL Cast app" width="700">

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.

<img src="/files/GboUHLI8Pqfi7Te6WGiA" alt="Participants tab" width="200">

If multiple speakers are present in a DCL Cast session, players in-world will hear the voices of all speakers, and the see the video will automatically switch to show whoever is currently emitting sound, to always show who's speaking.

To override this default behavior:

* Click the **Speakers** button on the scene admin panel

<img src="/files/mGqD1AKJlxcjwULZWLg3" alt="Participants tab" width="200">

* Pick one of the speakers and select a source to showcase (either that speaker's camera or screen)

<img src="/files/e8N6zqm2mZS35H9eCSKM" alt="Participants tab" width="200">

This will force this source to be always shown on screen, regardless of if other speakers are talking.

{% hint style="info" %}
**📔 Tip**: If you're also in-world watching the stream, you may find it jarring to hear echo from audio repeated both in the DCL Cast app an in the Decentraland scene. You can easily mute all audio from the DCL Cast app, but toggling the speaker icon on the bottom-left of the screen

<img src="/files/N9kWP6Sm6KXS4WMo42Gb" alt="Participants tab" data-size="original">

Otherwise you can mute audio in the Decentraland settings.
{% endhint %}

### Share presentations

You can also share the contents of a slide presentation as an alternative source of images.

* From in-world, click the **Share presentation** button in-world in the DCL Cast tab. From the DCL Cast app, click the dropdown next to the **Share Screen** button and select **Share presentation**.

<img src="/files/Ue2p8pR2Hd5skYhlwdXU" alt="Participants tab" width="200">

* Paste a Google slides link, a link to a .pdf hosted in Drive or a similar source, or upload a .pdf file.

The presentation will now be a source that can be selected to show on screen, while the voices of all speakers are still heard.

{% hint style="warning" %}
**📔 Note**: Presentation files must be under 100 MB. Google slides presentations must be set to *public*.

There can only be one active presentation at a time in a DCL Cast session.
{% endhint %}

You can then switch slides, or even play and pause any videos that are embedded in these slides by pressing buttons that exist both in the DCL Cast app and in-world in the Scene Admin UI.

## Stream (advanced)

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

   ![](/files/5qs3neoktFnhFdxrCvWL)
2. In the **Video** tab, switch to **Live** and click **Get Stream Key**.

   ![](/files/KY2VsMpOkVRUnhKXc124)
3. Copy the **RTMP Server** and **Stream Key** into your streaming software.

   ![OBS configuration](/files/eCfLYnokVQlZKDGccTNz)

{% 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.

   <img src="/files/NNLZhPZxt3gtVmXgCQbL" alt="Activate stream" width="100">

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

![](/files/lRrfQ6aK6grSvquEVYNU)

* 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 (advanced)

You can also stream by configuring the Video Screen to use the option **Video URL** and pasting a stream URL.

You should be able to paste a URL pointing to a video from most popular video streaming sites. Be mindful of the terms of service with these platforms.

To stream from a video file you have on your local machine, the easiest path is to upload this video to a public Google Drive and paste the link.

* The URL must be `https`. See [About External Streaming](/creator/scenes-sdk7/media/video-playing.md#about-external-streaming).
* Recommended providers include [Vimeo](https://vimeo.com/), [Bunny](https://github.com/decentraland/docs/blob/main/creator/scene-editor/live-ops/bunny.net), [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](/creator/scenes-sdk7/media/video-playing.md#setting-up-obs-for-successful-streaming).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.decentraland.org/creator/scene-editor/operate-live/live-streaming.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
