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) |
✗ |