Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions content/creator/scene-editor/interactivity/smart-items.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,8 @@ Play videos from either:

- **Local files**
- **Stream from a URL**
- **Stream live from [Decentraland Cast]({{< ref "/creator/worlds/cast.md">}})**
- **Stream live from [Decentraland Cast]({{< ref "/creator/scene-editor/live-ops/live-streaming.md#dcl-cast">}})**
- **Stream live from [RTMP Software]({{< ref "/creator/scene-editor/live-ops/live-streaming.md#stream-method">}}) (OBS, XSplit, StreamYard, etc.)**

{{< hint warning >}}
**📔 Note**: Avoid playing more than one video at any given time in your scene, because it can severely impact performance for players. Always stop other videos before playing a second video.
Expand All @@ -140,8 +141,7 @@ Play an audio stream from a URL, using hte **Audio Stream** smart item.
Not all streaming services allow you to play their audio outside their site. The following are some examples that work in Decentraland:

```ts
GRAFFITI =
'https://n07.radiojar.com/2qm1fc5kb.m4a?1617129761=&rj-tok=AAABeIR7VqwAilDFeUM39SDjmw&rj-ttl=5'
GRAFFITI = 'https://n07.radiojar.com/2qm1fc5kb.m4a?1617129761=&rj-tok=AAABeIR7VqwAilDFeUM39SDjmw&rj-ttl=5'
SIGNS = 'https://edge.singsingmusic.net/MC2.mp3'
DELTA = 'https://cdn.instream.audio/:9069/stream?_=171cd6c2b6e'
JAZZ = 'https://live.vegascity.fm/radio/8010/the_flamingos.mp3'
Expand All @@ -163,11 +163,11 @@ To display an NFT on a picture frame, use the **NFT** smart item. You must provi
- NFT Collection Contract: The smart contract for the NFT collection.
- Token ID: The token ID of this particular NFT collectible.

<img src="/images/editor/nft-shape.png" width="300"/>
<img src="/images/editor/nft-shape.png" width="400"/>

You can obtain this information from [OpenSea](https://opensea.io), by checking the **Details** tab under the NFT image.

<img src="/images/editor/opensea.png" width="300"/>
<img src="/images/editor/opensea.png" width="400"/>

{{< hint info >}}
**📔 Note**:
Expand Down
2 changes: 1 addition & 1 deletion content/creator/scene-editor/interactivity/video-screen.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ Keep in mind that a video file adds to the total size of the scene, which makes

## Live streaming

For end-to-end live streaming (OBS setup, stream keys, admin controls), see [Live Streaming]({{< ref "/content/creator/scene-editor/live-ops/live-streaming.md" >}}).
For end-to-end live streaming, see [Live Streaming]({{< ref "/content/creator/scene-editor/live-ops/live-streaming.md" >}}).

### Streaming from other sources

Expand Down
110 changes: 95 additions & 15 deletions content/creator/scene-editor/live-ops/live-streaming.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,22 @@ weight: 2

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

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

- A scene with at least one [Video Screen]({{< ref "/content/creator/scene-editor/interactivity/video-screen.md" >}}) smart item.
- The [Scene Admin]({{< ref "/content/creator/scene-editor/live-ops/scene-admin.md" >}}) smart item linked to your video screens.
- Streaming software that can output to an RTMP endpoint (e.g. [OBS](https://obsproject.com/), [XSplit](https://www.xsplit.com/), [StreamYard](https://streamyard.com/)).
- **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="/images/editor/admin/streaming-modes.png" 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.

<img src="/images/editor/admin/video-player-item.png" alt="Video Screen item" width="200"/>
Expand All @@ -29,9 +37,85 @@ Use the **Video Screen** smart item together with the **Scene Admin** smart item

3. Publish your scene (World or Genesis City) and enter as a user with admin permissions.

<img src="/images/editor/publish-button.png" alt="Publish" width="200"/>
<img src="/images/editor/publish-button.png" alt="Publish" width="150"/>

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


{{< hint 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]({{< ref "/content/creator/scene-editor/interactivity/video-screen.md#multiple-video-screens" >}}) for more details.
{{< /hint >}}



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

<img src="/images/editor/admin/dcl-cast.png" 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.

{{< hint danger >}}
**❗Warning**: Treat the steaming link as a secret, only share it with people you trust. Reset the link between presenters if needed.

Only one person can stream to a scene at a time. When finished streaming, close the DCL Cast browser tab to free the channel.
{{< /hint >}}

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

<img src="/images/editor/admin/activate.png" alt="Activate stream" width="150"/>

## Get stream credentials


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="/images/editor/admin/reset-room.png" 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="/images/editor/admin/dcl-cast-landing.png" 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 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.
{{< /hint >}}


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="/images/editor/admin/dcl-cast-app.png" 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="/images/editor/admin/participants.png" alt="Participants tab" width="200"/>


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

Expand All @@ -43,25 +127,21 @@ Use the **Video Screen** smart item together with the **Scene Admin** smart item

3. Copy the **RTMP Server** and **Stream Key** into your streaming software.

<img src="/images/editor/admin/OBS-configuration.png" alt="OBS configuration" width="600"/>
<img src="/images/editor/admin/OBS-configuration.png" alt="OBS configuration" width="700"/>

{{< hint 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.
{{< /hint >}}

## Start and control the stream
### 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="/images/editor/admin/activate.png" alt="Activate stream" width="200"/>

Notes:
<img src="/images/editor/admin/activate.png" alt="Activate stream" width="150"/>

- Streaming works in Worlds and Genesis City, with no audience limits on the scene side.
- If you add multiple Video Screens, mute all but one to avoid audio artifacts.

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

Expand All @@ -75,7 +155,7 @@ Stream keys are generated per scene and are valid for 4 days (96 hours). A singl
**❗Warning**: Treat stream keys as secrets. Reset the key between presenters if needed.
{{< /hint >}}

## Streaming from other providers
## 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.

Expand Down
44 changes: 22 additions & 22 deletions content/creator/scene-editor/live-ops/scene-admin.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,24 @@ url: /creator/scene-editor/live-ops/scene-admin
weight: 1
---

Grant certain players the special role of **admin** on your scene.
Grant certain players the special role of **admin** on your scene.

During a live event, an admin can spontaneously control what happens in the scene from inside Decentraland, without needing to pre-schedule actions or relying on a 3rd party service. Start playing the music when enough of a crowd gathered, drop confetti or make a spaceship appear when the time feels right.


{{< youtube efjJN7Jr7Qo >}}

When a scene admin visits your scene, they see a special UI on the top-right corner that only they are able to see. Through this UI they can play videos or live streams, send announcements, ban players, or activate any smart item that is configured to be activated like this. These actions are seen by all other players in the scene that are connected to the same comms island as the admin.

<img src="/images/editor/admin/admin-console.png" alt="Scene name" width="300"/>


## Setting up admins

To assign admins, you need to add the **Scene Admin** smart item to your scene.

<img src="/images/editor/admin/admin-smart-item.png" alt="Scene name" width="200"/>


{{< hint warning >}}
**📔 Note**: Update your scene to use the latest dependencies. The Scene Admin Smart item won't work if the scene is outdated.
**📔 Note**: Update your scene to use the latest dependencies. The Scene Admin Smart item won't work if the scene is outdated.

<img src="/images/editor/admin/update-dependencies.png" alt="Scene name" width="300"/>

Expand Down Expand Up @@ -67,32 +64,35 @@ To enable this, you need to add a **Video Player** smart item to your scene and

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

<img src="/images/editor/admin/video-player-item.png" alt="Scene name" width="200"/>
<img src="/images/editor/admin/video-player-item.png" alt="Scene name" width="200"/>

See [Video Screen]({{< ref "/content/creator/scene-editor/interactivity/video-screen.md" >}}) for more details on how you can configure the default media source, image placeholder and other settings of the Video Player smart item. Most of these configurations can be overriden by the admin once inside the scene.
See [Video Screen]({{< ref "/content/creator/scene-editor/interactivity/video-screen.md" >}}) for more details on how you can configure the default media source and other settings of the Video Player smart item. Most of these configurations can be overriden by the admin once the scene is running.

{{< hint warning >}}
**📔 Note**: An admin can only manage videos that play on the Video Screen smart item, not on screens added via SDK code.
{{< hint warning >}}
**📔 Note**: An admin can only manage videos that play on the Video Screen smart item, not on screens added via SDK code.

You can include as many video screens as you want. In general, avoid having more than one different video playing at the same time, as that hurts performance a lot.
{{< /hint >}}
You can include as many video screens as you want. In general, avoid having more than one different video playing at the same time, as that hurts performance a lot.
{{< /hint >}}

2. Open the Scene Admin Smart Item, make sure the **Video Screens** checkbox is enabled for this section to show. Then select the screen from a dropdown list and give it a friendly name to display on the Admin UI. You can add as many Video Screens as you want, each screen is controlled independently.

<img src="/images/editor/admin/multi-video-setup.png" alt="Scene name" width="300"/>
<img src="/images/editor/admin/multi-video-setup.png" alt="Scene name" width="300"/>

Once the above is configured, admin users in your scene can open the admin panel and select the video section to control these video screens.

<img src="/images/editor/admin/video-player.png" alt="Scene name" width="300"/>
<img src="/images/editor/admin/video-sources.png" alt="Scene name" width="300"/>

If your scene has multiple independent video screens, the **Current Screen** dropdown lets you pick which video screen to control. The list displays the names you gave to each video screen on the Admin Tools smart item configuration.

If your scene has multiple video screens, the **Current Screen** dropdown lets you pick which video screen to control. The list displays the names you gave to each video screen on the Admin Tools smart item configuration.
{{< hint info >}}
**💡 Tip**: To show the same video on multiple screens that can be controlled as one, see [Multiple Video Screens]({{< ref "/content/creator/scene-editor/interactivity/video-screen.md#multiple-video-screens" >}}).
{{< /hint >}}

### Media Sources

There are two kinds of media sources for playing videos:
There are three media source options for playing videos:

- **Video**: Play a video file from your local filesystem or from an URL.
- **Video URL**: Play a video file from your local filesystem or from an URL.
Paste a video URL into the **Video URL** field and click the green **Activate** button. The video will start playing on the selected screen for all players. You can also stop, pause, restart, mute, or change the volume of the video.

<img src="/images/editor/admin/video-from-url.png" alt="Scene name" width="300"/>
Expand All @@ -101,6 +101,11 @@ There are two kinds of media sources for playing videos:
**📔 Note**: Not any video URL will work. Videos from sites like Youtube for example have strict policies about their content and will block access to them from Decentraland. See [Streaming from other sources]({{< ref "/content/creator/scene-editor/interactivity/video-screen.md#streaming-from-other-sources" >}}) for more information on what you can and can't play in Decentraland.
{{< /hint >}}

- **DCL Cast**: 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.

<img src="/images/editor/admin/dcl-cast.png" alt="DCL Cast" width="300"/>


- **Live stream**: Play a live stream using Decentraland's free streaming infrastructure and a streaming software like OBS or StreamYard.

<img src="/images/editor/admin/live-stream.png" alt="Scene name" width="300"/>
Expand All @@ -111,6 +116,7 @@ Each screen in your scene will have one of the above media sources set as **Acti

<img src="/images/editor/admin/activate.png" alt="Scene name" width="200"/>

See [Live Streaming]({{< ref "/content/creator/scene-editor/live-ops/live-streaming.md" >}}) for more information on how to set up a live stream.

## Announcements

Expand Down Expand Up @@ -151,23 +157,18 @@ You can ban players from your scene by selecting the **Moderation** tab of the a

<img src="/images/editor/admin/ban-players.png" alt="Scene name" width="300"/>


{{< hint info >}}
**💡 Tip**: To obtain a player's wallet address, click on their avatar to open up their profile, then click on the **Copy to clipboard** button next to the wallet address.
{{< /hint >}}


Banned players will be unable to load your scene or interact with any of its content. Other players will not see them in the scene, or read any of their chat messages.


{{< hint warning >}}
**📔 Note**: The effects of your ban are immediate and permanent. Once a player is banned, they will remain banned until the ban is lifted. Banning a player from your scene only affects what players who are standing inside your scene can see, if a player steps outside your scene's bounds, they are no longer affected by the ban. Banned players are invisible to other players if they're standing outside your scene too.
{{< /hint >}}

Click **View Ban List** to see the list of currently banned players. From this list you can also **Unban** players.



## Trigger smart items

To Trigger an action from any smart item in the scene:
Expand All @@ -176,7 +177,6 @@ To Trigger an action from any smart item in the scene:
- Open the settings for the **Scene Admin** Smart Item in the Creator Hub
- In the **Smart item actions** section, add the smart item from the dropdown, give it a custom name and select a default action


Once the above is configured, admins can trigger the action by opening the **Smart Item Actions** section of the admin UI and then selecting an item from the dropdown list. They can then either click the **Default** button to trigger the default action of that item, or select any other of the item's actions from the list.

<img src="/images/editor/admin/smart-item-actions.png" alt="Scene name" width="300"/>
Expand Down
Loading