> For the complete documentation index, see [llms.txt](https://captivatehelp.newbluelive.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://captivatehelp.newbluelive.com/set-up-your-production/chapter-index-6/streaming-with-srt.md).

# Stream with SRT

> *Availability — included in Enterprise.*

SRT (Secure Reliable Transport) carries live video over ordinary, unreliable networks, the public internet included, and recovers the packets those networks drop. Compared with RTMP it adds loss recovery and encryption while keeping the delay in the hundreds of milliseconds rather than seconds.

Use it to reach a broadcast facility, a cloud ingest, or a hardware decoder — anything that speaks SRT rather than expecting a social platform’s RTMP endpoint.

{% hint style="info" %}
If **SRT** isn’t offered when you add a destination, your license doesn’t include it — destination types your license doesn’t cover are not listed at all, rather than shown greyed out.
{% endhint %}

## Add an SRT destination

1. Open **Settings** > **Streaming…**.
2. Click **Add Destination**, choose **SRT** under **PROTOCOLS**, and click **Add**.
3. Choose a **Mode** — see below.
4. Fill in the address, switch the destination on, and save.

### Caller or Listener

This is the one decision that catches people out. It sets which end reaches out to the other; it has nothing to do with which end sends video. Either way, Captivate is the sender.

* **Caller** (the default) — Captivate connects out to a receiver that’s already waiting. Enter its **Host** and **Port**. This is what you want when you’re sending to a facility, a cloud service, or anyone who has given you an address to send to.
* **Listener** — Captivate opens a port and waits for the far end to connect and pull the stream. Enter only a **Port**. Use this when the receiving end wants to initiate, and make sure that port reaches you through your firewall and router.

The two ends must disagree: one Caller, one Listener. If both are set the same way, nothing ever connects.

## The fields

| Field         | Default | Notes                                                                                                                     |
| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Mode**      | Caller  | Caller connects out to a host; Listener waits to be connected to.                                                         |
| **Host**      | —       | The receiver’s address. Ignored in Listener mode.                                                                         |
| **Port**      | 9000    | 1–65535. Must match the far end.                                                                                          |
| **Stream ID** | —       | Optional. Some gateways use it to route or authenticate an incoming stream; supply it only if your receiver asks for one. |

The rest sit behind **Advanced**, and the defaults are right for most links:

| Field            | Default | Notes                                                                                                                                          |
| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Latency (ms)** | 200     | 20–8000. The buffer SRT uses to recover lost packets. Higher values survive worse networks at the cost of delay.                               |
| **Passphrase**   | empty   | 10–79 characters. Set one and the stream is encrypted; leave it empty for an unencrypted connection. The far end must use the same passphrase. |
| **Overhead (%)** | 25      | 5–100. Spare bandwidth reserved for retransmitting lost packets. Raise it on a lossy link.                                                     |

The passphrase is masked; click **Show** to check it.

## Choosing a latency

Latency has to cover the round trip several times over, so the further the link, the higher it goes. A workable starting point:

| Link                   | Latency    |
| ---------------------- | ---------- |
| Local network          | 20–60 ms   |
| Regional, same country | 100–200 ms |
| Intercontinental       | 300–500 ms |

A common rule is **latency ≥ round-trip time × 3**. Set both ends to comparable values — a receiver configured much lower than the sender will drop the packets SRT was trying to recover.

If the picture at the far end stutters or the audio drifts, raise the latency at both ends before touching anything else.

## Watching an SRT destination

An SRT destination reports in the status bar like any other: a bitrate once it’s carrying video, `Reconnecting (1)` if it drops, `Error` if it gives up. Hover it for the address and any error detail.

In **Listener** mode there’s nothing to report until a receiver connects, so the destination reads `Idle` while it waits. That’s expected — it becomes a bitrate the moment the far end connects and video starts flowing. If it never does, work through the troubleshooting table below.

## Troubleshooting

| Symptom                                         | Likely cause                                                                                                                                                |
| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Caller mode won’t connect                       | The receiver isn’t listening yet, the port is wrong, or a firewall is blocking outbound **UDP**. SRT uses UDP — a firewall rule that allows TCP won’t help. |
| Caller keeps trying and never connects          | The address is unreachable, or the receiver requires a passphrase you haven’t supplied.                                                                     |
| Listener mode never accepts a connection        | Inbound UDP isn’t reaching you, the port is already in use, or the far end is also set to Listener. One end must be Caller.                                 |
| It connects, then breaks up                     | The link can’t sustain your bitrate, or latency is too low for it. Raise the latency at both ends, raise **Overhead**, or lower the resolution and bitrate. |
| The far end reports decryption errors           | The passphrases don’t match. They’re case-sensitive, and must be 10–79 characters at both ends.                                                             |
| **SRT** isn’t offered when adding a destination | Your Captivate license doesn’t include SRT streaming.                                                                                                       |

## See also

* [Streaming with Captivate](/set-up-your-production/chapter-index-6/set-up-streaming.md) — the Streaming dialog, and how destinations work
* [Stream to multiple destinations](/set-up-your-production/chapter-index-6/streaming-to-multiple-destinations.md) — mixing SRT with RTMP services


---

# 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 dynamically by asking a question.

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

```
GET https://captivatehelp.newbluelive.com/set-up-your-production/chapter-index-6/streaming-with-srt.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
