Stream your PC's audio to your phone over your local network — wirelessly, with low latency.
AudioBridge captures the audio your computer is playing (WASAPI loopback), encodes it with Opus, and streams it over WebRTC to any phone or tablet on the same Wi-Fi network. No accounts, no cloud, no audio ever leaves your LAN.
- Run
audiobridge-server.exe(orcargo run -p audiobridge-server). - On your PC, open the printed address:
http://127.0.0.1:8765/. - On your phone, open the pairing URL shown on the desktop page — or scan the QR code.
- Tap Connect on the phone. Audio from the PC now plays on the phone.
On first run, Windows may show a UAC prompt to add a firewall rule so your phone can reach the server. Accept it once; the rule is scoped to the AudioBridge executable on the private network profile only.
- WebRTC + Opus audio transport with automatic reconnection (exponential backoff, resumes when the phone returns to foreground)
- Pairing token + QR code — the phone must present a token shown on the desktop UI; tokens are regenerated on every server start and never stored
- Stable / Low Latency modes — 20 ms frames with FEC for reliability, or 10 ms frames for lower latency
- Device management — see connected receivers, adjust volume, disconnect remotely
- Diagnostics — connection, audio, and performance metrics updated every second
- Dark and light themes, mobile-first receiver page, keyboard-accessible UI
- Single executable — the web UI is embedded in the binary; no Node.js needed at runtime
- Audio is encoded and streamed only within your local network. Nothing is sent to the internet.
- The pairing token is kept in memory only — it is never written to disk and changes on every server start.
- The control API (
/api/status,/api/settings,/api/disconnect,/api/volume) is restricted to the local machine (loopback). Phones can only use the public status endpoint, which contains no token or settings data.
| Problem | Fix |
|---|---|
| Phone can't connect | Check both devices are on the same network. Ensure the firewall rule exists: audiobridge-server --install-firewall (UAC prompt). |
| "Pairing failed" after a restart | The token changes on every server start. Re-scan the QR code on the desktop page. |
| Audio stutters | Switch to Stable mode in Settings (FEC on, larger frames). |
| Audio lags | Switch to Low Latency mode in Settings (10 ms frames). |
| No audio on the phone | Check the phone's volume and the per-device volume slider in the desktop UI. |
Prerequisites:
- Rust 1.85+ (edition 2024)
- Node.js 20.9+ with npm (only needed to build the web UI; the build script runs
npm ci && npm run buildautomatically whenweb/outis missing)
cargo build --releaseThe release binary at target/release/audiobridge-server.exe is self-contained — the UI is embedded at compile time.
For UI development, run npm run dev in web/ and start the server with AUDIOBRIDGE_DEV=1 to serve the UI from disk instead of the embedded copy.
| Path | Purpose |
|---|---|
crates/audio |
WASAPI loopback capture |
crates/app |
Capture orchestration (device selection, stream lifecycle) |
crates/server |
HTTP/WebSocket server, WebRTC signaling, Opus encoding, control API, embedded UI |
web/ |
Next.js static UI (desktop dashboard + mobile receiver), exported to web/out |
docs/ |
Architecture, security, signaling, and testing documentation |
MIT