> For the complete documentation index, see [llms.txt](https://docs.cstplus.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cstplus.org/documentation/getting-started/your-first-channel.md).

# Your First Channel

A channel in CST+ is a continuous 24/7 linear stream. You point it at a folder of video files, CST+ renders them into a uniform broadcast reel, then loops that reel forever with near-zero CPU cost.

***

### Step 1: Upload your content

Go to **Media Library** in the sidebar and upload your video files, or use **File Manager** to browse content already on disk.

{% hint style="info" %}
Accepted formats: mp4, mkv, mov, avi, and most other containers ffmpeg can read. Mixed resolutions and codecs are fine. CST+ normalises everything to a uniform output during render.
{% endhint %}

***

### Step 2: Create a channel

Click **Channels** in the sidebar, then **New channel**. A setup wizard opens on the right side of the screen.

{% tabs %}
{% tab title="Basic info" %}

| Field          | Notes                                                                    |
| -------------- | ------------------------------------------------------------------------ |
| Name           | Display name shown in EPG and playlists                                  |
| Slug           | Short URL-safe ID, e.g. `news` or `sport-1`. Appears in all stream URLs. |
| Content folder | Folder with your video files. Scanned recursively.                       |

{% hint style="danger" %}
The slug cannot be changed after the channel is created. It is part of every stream URL, so changing it would break all existing playlists.
{% endhint %}
{% endtab %}

{% tab title="Output settings" %}

| Setting          | Recommended                                            |
| ---------------- | ------------------------------------------------------ |
| Resolution       | 1280x720 for most channels, 1920x1080 for premium      |
| Video codec      | H.264 (works everywhere); H.265 for better compression |
| Audio codec      | AAC (safe default); AC3 if your sources have it        |
| Shuffle          | Enable to randomise playback order                     |
| GPU acceleration | Only available with an NVIDIA GPU on the server        |
| {% endtab %}     |                                                        |

{% tab title="Extras" %}
**Logo overlay** Upload a PNG to burn into the top corner of the stream.

**Ad markers** Enable SCTE-35 break signals for ad insertion.

{% hint style="info" %}
Ad markers require a **Pro or Business** license. The toggle is not shown on Starter.
{% endhint %}
{% endtab %}
{% endtabs %}

Click **Create and render**.

***

### Step 3: Wait for the render

Rendering is the one-time step where CST+ normalises all your content into a uniform broadcast reel.

{% hint style="info" %}
Render time depends on total content duration and your server CPU. A 2-hour reel on a 2-core VPS typically takes 10-20 minutes. You can track progress on the channel card. Multiple channels can render at the same time.
{% endhint %}

***

### Step 4: Start the channel

When rendering finishes, click **Start** on the channel card. Within a few seconds the status changes to **On air**.

CST+ starts a systemd service (`cstplus-channel@YOUR_SLUG`) that runs the HLS loop. From this point the channel is live and using roughly **54 MB of RAM** and almost no CPU.

{% hint style="success" %}
Open the channel page and click the built-in preview player to verify the stream looks correct before sharing access with any viewers.
{% endhint %}

***

### Re-rendering

If you add new files to the content folder or change channel settings, click **Re-render** on the channel page.

{% hint style="info" %}
The channel keeps airing the old reel while the new one renders. It switches over automatically when the new render is done. No downtime
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.cstplus.org/documentation/getting-started/your-first-channel.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
