Pure P2P Local Network Streaming. Zero-latency, no cloud.
π¬π§ English β’ πΉπ· TΓΌrkΓ§e
Features β’ How it Works β’ Installation β’ Usage β’ Roadmap
VeloStream is an ultra-fast, pure peer-to-peer (P2P) local network streaming solution. It allows you to broadcast your screen and system audio from your computer to any other device (like a phone, tablet, or another PC) on the same Wi-Fi or Ethernet network.
No internet routing, no cloud servers, no subscriptions. Just raw, pure local performance using WebRTC and Golang.
- β‘ Zero-Latency P2P: Streams directly device-to-device via WebRTC.
- π Auto Peer Discovery: Automatically finds other VeloStream instances on your local network using UDP broadcasts.
- π» Cross-Platform AlΔ±c (Receiver): Watch your stream on any device with a modern web browser (iOS, Android, Windows, Mac).
- π System Audio Support: Capture and stream your desktop audio natively.
- π¨ Modern Bilingual UI: Beautiful dark-mode dashboard with built-in English (EN) and Turkish (TR) support.
- π Lightweight Backend: Built entirely in Go (Golang) for incredible concurrency and low memory footprint.
- The Go Backend: Serves the HTML/JS/CSS files over HTTP and manages a WebSocket Hub. It also broadcasts UDP packets to discover other VeloStream servers on the network.
- The Signaling Server: The Go backend routes WebRTC signaling messages (
SDP Offers,Answers, andICE Candidates) between connected browser clients. - WebRTC: Once signaling is complete, the browser establishes a direct P2P connection to share the video/audio tracks. The video doesn't pass through the Go server; it flows directly from the host browser to the receiving browser.
- Go (Golang) 1.20 or higher installed on your computer.
- Clone the repository:
git clone https://github.com/FOXYorj/VeloStream.git cd VeloStream - Install dependencies:
go mod tidy
- Run the VeloStream server:
Note: If Windows Firewall prompts you, click "Allow access" for Private Networks so UDP discovery and the web server can work locally.
go run .
- Open a modern browser (Chrome/Edge recommended) on the computer running the Go server.
- Go to:
http://localhost:8080(β οΈ Crucial: You must uselocalhostand not your local IP address on the host PC. Browsers restrict screen capturing APIs to secure contexts like HTTPS orlocalhost). - Click "Start Broadcasting".
- Chrome will open a dialog. Select "Entire Screen".
- If you want to share audio, make sure to check the "Share system audio" checkbox at the bottom/top of the dialog.
- Click Share. A mini-preview will appear on the bottom right of your screen.
- Connect your phone/tablet/laptop to the same Wi-Fi network.
- Open the browser and go to the Host PC's local IP address. For example:
http://192.168.1.X:8080 - Under the "Active Streams" section, you will see the host's broadcast.
- Click "Connect" (BaΔlan).
- The stream will open in Native Fullscreen with zero latency. If you don't hear audio immediately, tap the screen/volume controls to unmute (due to mobile autoplay policies).
- Mobile Receiver: Use any tablet or phone as a zero-lag secondary display.
- System Audio Sharing: Stream PC audio alongside the video.
- Virtual Audio Cable: Stream per-app audio without mixing system sound.
- Stream Recording: Record incoming streams to disk in H.264/VP9.
- Multi-Cast: Broadcast to multiple receivers with smart bandwidth balancing.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License. See the LICENSE file for details.
Created for the pure love of local networks.

