Connect your first SRT stream
Connect your first SRT stream
This guide commissions the primary SRT path: ingest on UDP 5000, egress on UDP 5001. Both are listener mode — your encoder calls ingest; your player or downstream calls egress.
Before you start
- Appliance first boot has finished (
/var/lib/pixop-live/instance-init.completeexists). The SSH welcome banner lists operator commands when ready. - AWS Marketplace:
pixop-license doctorreports healthy activation. - KVM: license JWT installed (KVM quickstart).
- Security groups or host firewall allow UDP 5000 from the encoder and UDP 5001 to the receiver.
1. Get connection details
On the appliance:
tsduckctl credentialsThis prints private and public IPv4 (from EC2 metadata on AWS), listener ports, encryption key length, and passphrases on separate lines. Do not share passphrases in tickets.
If initialization is still running, the command waits up to 15 seconds for the completion marker.
2. Connect the SRT source
Point your encoder or ffmpeg/srt-live-transmit at the ingest URI from the credentials sheet, for example:
srt://<appliance-ip>:5000?mode=caller&passphrase=<from-credentials>&pbkeylen=16The appliance listens; the source must be in caller mode (or equivalent).
Keep a continuous live feed running during the first minute after cold start. Restoration models load on the GPU; a clip of a few seconds may end before enhanced output appears.
3. Confirm internal flow
pixop-flowDefault sample is 2 seconds. You should see traffic at:
| Stage | Endpoint |
|---|---|
| SRT ingest | :5000 |
| Pre-Pixop multicast | 239.0.0.1:5500 |
| Post-Pixop multicast | 239.0.0.1:5501 |
| Merged output | 239.0.0.1:5600 |
| SRT egress | source port :5001 |
Exit code 3 means the backbone at :5500 is at or above TS_TARGET_BITRATE from network.env — investigate capacity or input bitrate.
Idle (no source yet) is normal; exit code 0.
4. Detect video PID
With media flowing at :5500:
tsduckctl detect-video-pid mainWhen the result is unambiguous, apply it:
tsduckctl detect-video-pid main --applyThis atomically updates ORIGINAL_VIDEO_PID and INPUT_PCR_PID in /etc/pixop-live/tsduck/main.env and restarts primary ingress.
Optional: tsduckctl detect-video-pid main --secs 10 (1–30) for a longer sample.
5. Tune pipeline latency
With both :5500 and :5501 flowing:
tsduckctl tune-latency mainRead-only status is SAFE when PIPELINE_LATENCY is at least the measured minimum (200–1500 ms supported). To apply the recommendation:
tsduckctl tune-latency main --apply6. Connect the SRT receiver
Use the egress URI from tsduckctl credentials, for example:
srt://<appliance-ip>:5001?mode=caller&passphrase=<from-credentials>&pbkeylen=32An early egress connection may fail once while the listener restarts; retry.
7. Verify output
pixop-flowagain — egress:5001should show payload Mbps.pixopctl healthorcurl -sS http://<ip>:8080/v1/metrics— frame counters after input is seen.- Optional:
pixopctl logsand/var/log/pixop-live/live.logfor Pixop diagnostics.
Control UI
Open http://<appliance-ip>:8080 from a host allowed by your management CIDR. Picture-processing settings persist in /var/lib/pixop-live/parameters/params.json and override matching CLI defaults at startup.
Encoded output format (resolution, chroma, HDR signalling, bitrate) is edited in /etc/pixop-live/nvencc.args; restart Pixop only:
pixopctl restartSRT ingest and egress stay up during pixopctl restart.
Optional secondary paths
UDP 5002 and 5003 map to optional egress instances. They are disabled by default. Enable explicitly:
pixop-stack enable --allConfigure passphrases in the corresponding /etc/pixop-live/tsduck/*.env files before starting.
Commissioning checklist
tsduckctl credentials
↓
SRT source → :5000
↓
pixop-flow
↓
tsduckctl detect-video-pid main --apply
↓
tsduckctl tune-latency main --apply
↓
SRT receiver → :5001
↓
pixop-flow + metricsRelated
- Network and transport
- Transport troubleshooting — when
pixop-flowor SRT paths stall after commissioning - tsduckctl
- pixop-flow
- Monitoring and troubleshooting
Updated about 11 hours ago
