Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AudioBridge

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.

Quick start

  1. Run audiobridge-server.exe (or cargo run -p audiobridge-server).
  2. On your PC, open the printed address: http://127.0.0.1:8765/.
  3. On your phone, open the pairing URL shown on the desktop page — or scan the QR code.
  4. 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.

Features

  • 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

Privacy

  • 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.

Troubleshooting

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.

Building from source

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 build automatically when web/out is missing)
cargo build --release

The 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.

Project layout

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

License

MIT

About

AudioBridge is a lightweight, open-source tool that lets you use your phone as a wireless speaker for your PC over your local network.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages