SRT Listener Egest

Sends media streams via SRT as a listener with configurable buffer and delay settings

Component Configuration

Option Description Required Environment override

id

A unique identifier for the component instance

✓

displayName

The name shown in the Studio UI of this component

✓

port

The port this SRT output will listen on (default: 5101)

✗

<COMPONENT_ID>_PORT

host

The IP address/Hostname this SRT output will listen on (default: "0.0.0.0")

✗

<COMPONENT_ID>_HOST

jitterBuffer

Configure the buffer to smooth outgoing data. Leave empty to use global latency profile default. (default: {})

✗

avDelayMs

How many milliseconds to delay A/V to account for subtitles/ancillary data (default: 50)

✗

subtitles

Subtitle/caption configuration (default: {"kind":"cta608"})

✗

writeThroughFile

Configure a writethrough file for this output

✗

<COMPONENT_ID>_WRITETHROUGHFILE

passphrase

Optional: Authentication for this SRT output

✗

<COMPONENT_ID>_PASSPHRASE

streamId

Optional: StreamId to use when calling a remote listener

✗

socketOptions

Socket Options

✗

tsEncoder

TS Encoder settings

✓

notes

Additional notes about this component

✗

Options with an environment override can be set when Studio starts, without editing the workflow. <COMPONENT_ID> is this component’s id in your workflow, uppercased, with spaces and dashes replaced by underscores and other punctuation removed — a component named SRT Input reads SRT_INPUT_PORT. Renaming a component changes its id, and so changes these variable names.

Jitter Buffer

Option Description Required

bufferDelayMs

How many milliseconds in the jitter buffer. Leave empty to use the global latency profile default.

✗

Subtitles (CTA-708)

Option Description Required

kind

"cta708"

✓

Subtitles (CTA-608)

Option Description Required

kind

"cta608"

✓

Subtitles (Teletext)

Option Description Required

kind

"teletext"

✓

Subtitles (TTML)

Option Description Required

kind

"ttml"

✓

Subtitles (Passthrough)

Option Description Required

kind

"passthrough"

✓

Write Through File

Option Description Required

fileName

Base filename to write data to (if any)

✗

rollover

Whether to rollover the file and when to do it (default: {"type":"none"})

✗

Socket Options

Option Description Required

receiveLatency

The latency value in the receiving direction of the socket (SRTO_RCVLATENCY)

✗

peerLatency

The latency value provided by the sender side as a minimum value for the receiver (SRTO_PEERLATENCY)

✗

inputBandwidth

Input bandwidth (SRTO_INPUTBW)

✗

overheadBandwidth

Overhead bandwidth (SRTO_OHEADBW)

✗

maxBandwidth

Max bandwidth (SRTO_MAXBW)

✗

peerIdleTimeoutMs

Peer Idle Timeout (Input only)

✗

Ts Encoder (Standard)

Option Description Required

kind

"standard"

✓

audioFramesPerPes

The most audio frames that go in each PES packet. Fewer frames sends the audio sooner, in smaller and more evenly spaced pieces, so a receiver can play it out with a shorter buffer; more frames costs less bitrate in headers and padding. Left unset the engine packs 16, about a third of a second of 48kHz AAC per burst - which on its own exceeds some contribution latency budgets. Set 1 for lowest latency at a few percent more bitrate. Larger values save only around 1% more, and are capped in practice at about half a second of audio, because the engine also releases audio once its oldest frame is the PCR delay (500ms) old. (default: 16)

✗

flushPartialPackets

Send each chunk's leftover TS packets straight away instead of holding them until there are enough to fill a whole 1316-byte payload. That wait is for bytes, not frames, so on a low-bitrate or audio-only output it costs about 70ms at 128kbps no matter what audioFramesPerPes is set to. Turning this on removes it, for under 1% more bitrate in headers — but the payloads are then no longer all the same size, which some receivers dislike. Little to gain on a stream with real video bitrate. (default: false)

✗

Ts Encoder (ETR 290)

Option Description Required

kind

"etr290"

✓

bitrate

Overall transport stream bitrate (bits per second)

✓

pcrIntervalMs

PCR spacing in milliseconds (default: 50)

✗

tableIntervalMs

PAT/PMT table spacing in milliseconds (default: 100)

✗

audioFramesPerPes

The most audio frames that go in each PES packet. Fewer frames sends the audio sooner, in smaller and more evenly spaced pieces, so a receiver can play it out with a shorter buffer; more frames costs less bitrate in headers and padding. Left unset the engine packs 16, about a third of a second of 48kHz AAC per burst - which on its own exceeds some contribution latency budgets. Set 1 for lowest latency at a few percent more bitrate. Larger values save only around 1% more, and are capped in practice at about half a second of audio, because the engine also releases audio once its oldest frame is the PCR delay (500ms) old. (default: 16)

✗

Tags: srt listener egest