SRT Caller Egest

Calls a remote SRT listener to send media streams with configurable buffer 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

✓

destinations

Add one or more SRT destinations to call. The output stream will be sent to all destinations simultaneously. (default: [{"host":"127.0.0.1","port":5101}])

✗

<COMPONENT_ID>_DESTINATIONS

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

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.

Destinations

Option Description Required

host

The IP address/Hostname this SRT output will connect to (default: "127.0.0.1")

✗

port

The port this SRT output will connect to (default: 5101)

✗

passphrase

Optional: Authentication for this SRT output

✗

streamId

Optional: StreamId to use when calling a remote listener

✗

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 caller egest