UDP TS Egest

Sends multiple media streams over UDP in Transport Stream format

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 UDP TS destinations. The output stream will be sent to all destinations simultaneously.

✗

jitterBuffer

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

✗

avDelayMs

A/V delay in milliseconds (default: 50)

✗

tsEncoder

TS Encoder settings

✓

subtitles

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

✗

notes

Additional notes about this component

✗

Destinations

Option Description Required

destinationHost

The IP address/Hostname this UDP TS output will send to (default: "127.0.0.1")

✗

port

The port this UDP TS output will send to (default: 8001)

✗

interface

Which interface to bind to for publishing (default: "any")

✗

Jitter Buffer

Option Description Required

bufferDelayMs

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

✗

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)

✗

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"

✓

Tags: udp transport stream mpeg-ts egest