Structured fault isolation for SRT, relay/native backends, internal MPEG-TS multicast, and platform networking. Use with Network and transport for port reference and Transport configuration for safe edits.
Capability gate:tsduckctl transport is always in the CLI wrapper; it needs tsduck-transport-info installed to succeed and then reports native or relay effective backend. tsduck-transport-info bind-status and pixop-net require their respective binaries. Relay-only diagnostics (bonded listeners, stall recovery) apply when TRANSPORT_BACKEND=relay. On native-only images (helper absent), use tsduckctl check, native .env keys, and ss -uln for listeners. Confirm with pixop-version and command -v tsduck-transport-info.
First response (READ-ONLY)
Run on the appliance before restarting services:
pixop-version
tsduckctl check main
tsduckctl check egress-main
pixop-flow --secs 5
When command -v tsduck-transport-info succeeds:
tsduckctl transport main
tsduckctl transport egress-main
Fix VPC rules; test with srt-live-transmit from allowed host
Outbound license errors
Egress to AWS blocked
Sample CFN allows outbound all — tighten only with care
KVM bridge vs userspace
Symptom
Context
Action
Cannot reach guest from LAN
Userspace install
Use 127.0.0.1 forwards or reinstall with --bridge
Works on host, not remote
SLIRP binding
Expected; bridge for production
Credential and file sensitivity
Risk
Mitigation
Passphrase in ticket
Use tsduckctl credentials on appliance only
World-readable .env
Must be 0600 root
Pasting secrets into *.args
Use @SRT_PASSPHRASE@ only
Stream presence tools
Tool
Use
pixop-flow --secs 5
Mbps per stage; exit 0/3/10
pixop-preflight
Local listeners, license, disk — not SG
tsduckctl check main
Bind + unit active; may print bound (SRT session unverified)
tsduckctl transport main
Effective backend summary when helper installed (native or relay); extra relay bind detail when backend is relay
curl -sS http://<management-host>:8080/v1/metrics
Frame counters after input seen (restrict 8080 to ManagementCidr / trusted LAN)
Pixop does not expose a first-class “SRT packet loss percent” metric in these CLIs — do not infer loss from absence of such a field.
Command cheat sheet
Goal
Command
Mutates?
Listener readiness
tsduckctl check main
No
Effective transport
tsduckctl transport main (if tsduck-transport-info present)
No
UDP bind detail
ss -uln on ports 5000/5001 (any release)
No
Path bitrate
pixop-flow --secs 5
No
Video PID sample
tsduckctl detect-video-pid main
No
Apply PID
tsduckctl detect-video-pid main --apply
Yes — restarts ingress
Latency recommendation
tsduckctl tune-latency main
No
Apply latency
tsduckctl tune-latency main --apply
Yes — restarts ingress
Relay logs
journalctl -u tsduck-in@main -n 200
No
Multipath preflight
pixop-net multipath verify --relay-args ...
No
When to restart
Situation
Restart?
SG rule fixed
No — peers reconnect
Template or .env transport edit
Yes — affected tsduckctl restart <instance>
detect-video-pid --apply / tune-latency --apply
Automatic ingress restart
pixopctl restart after encoder change
No — for nvencc.args / Pixop only
Flapping SRT with no config change
No — diagnose peer/network first
Escalation evidence
When opening a support case, attach non-secret artifacts:
pixop-pack-config # if support requests config-only bundle
pixop-support-bundle # when full diagnostics approved
pixop-version
tsduckctl check main
tsduckctl check egress-main
pixop-flow --secs 5
If command -v tsduck-transport-info succeeds, add tsduckctl transport main and tsduckctl transport egress-main.
Include: AMI/QCOW2 version, deployment (AWS/KVM), symptom layer (A–F above), timestamps of restarts, and whether relay or native backend is active. Never attach tsduckctl credentials output or .env passphrases to tickets.