◧ SXPnet sender

Publish a live video feed into directory.sxpnet.com and watch it in any browser.

Save this manual as a PDF

1 · Download

macOS (Apple Silicon)qviroh-sender-macos-arm64 Linux (x86-64)qviroh-sender-linux-x86_64

Self-contained binaries — no runtime, no dependencies to install.

2 · Make it runnable

macOS

chmod +x qviroh-sender-macos-arm64
# macOS quarantines downloads; clear it so Gatekeeper lets it run:
xattr -d com.apple.quarantine qviroh-sender-macos-arm64 2>/dev/null || true

Linux

chmod +x qviroh-sender-linux-x86_64

3 · Publish your feed

Register with the directory and hold a relay uplink. Pick a unique --name — that is the key viewers look up.

macOS

./qviroh-sender-macos-arm64 \
  --name alice \
  --no-direct \
  --directory-url https://directory.sxpnet.com \
  --relay-host relay.sxpnet.com --relay-uplink-port 443

Linux

./qviroh-sender-linux-x86_64 \
  --name alice \
  --no-direct \
  --directory-url https://directory.sxpnet.com \
  --relay-host relay.sxpnet.com --relay-uplink-port 443

You should see [relay ] uplink connected and, every 15 s, a directory heartbeat. The sender encodes nothing until a viewer connects — it just holds the uplink open. Leave it running; press Ctrl-C to stop and de-register.

4 · Watch it

Open the directory and click your source, or go straight to the player:

https://directory.sxpnet.com/player?name=alice&mode=auto

The directory home page lists every live source with one-click watch links. mode=auto tries the fastest path first and falls back automatically: direct (P2P, UDP) → relay (UDP fallback) → ws (WebSocket / TCP 443, for networks that block UDP).

Options

FlagMeaning
--name <s>Source name viewers look up. Must be unique. (default qviroh)
--directory-url <url>Directory to register with. Use https://directory.sxpnet.com.
--relay-host <host>Relay to dial an uplink to. Use relay.sxpnet.com.
--relay-uplink-port <n>Relay uplink port. Use 443 (the public relay).
--no-directSkip the direct door — recommended on a laptop behind NAT (see below).
--public-host <ip>Advertise a direct P2P door at https://<ip>:4433. Only if that UDP port is reachable from the internet.
--fps / --quality / --width / --heightFrame generation (defaults 30 fps, q90, 640×480).

Direct P2P vs. relay

Most laptops should use --no-direct. The direct path is a true peer-to-peer WebTransport connection from the browser to your machine — it only works when your sender's UDP port is reachable from the browser (a public IP, a router port-forward to UDP 4433, or the same LAN / loopback). Behind ordinary home/office NAT that won't hold, so the reliable path is the relay, which both your sender and the viewer dial out to. To offer direct anyway, drop --no-direct and pass --public-host <your-public-ip> with UDP 4433 forwarded. (Chrome's Local Network Access will eventually show a one-time permission prompt for a public page reaching a loopback/LAN sender; today it doesn't yet gate WebTransport, so no prompt appears.)

SXPnet · pure QUIC / WebTransport + WebSocket fallback · no iroh · directory home