Framewire is a desktop app for streaming gameplay footage at 120fps+ with low latency to multiple friends at once.
The streamer just launches a native Windows app; viewers just open a URL in their browser — no install, no login, no permission prompts.
- Discord's screen share caps out at 60fps, even on paid plans — a real loss of information for competitive FPS players running 144Hz/240Hz setups
- Sunshine + Moonlight offer great quality/latency but are fundamentally 1-to-1 remote desktop tools (the viewer gets input control, setup is heavy, multi-viewer isn't a supported scenario)
- Framewire targets the gap: "Sunshine-grade quality, Discord-grade simplicity, for a small group."
The primary use case: playing a competitive/co-op FPS while showing 4-5 friends on a voice call your gameplay at high fidelity, to discuss strategy in real time. No text/voice chat is implemented — it's meant to run alongside Discord, handling video only.
- 1440p/120fps or 1080p/144fps high-fps streaming
- Works while the game is in exclusive fullscreen (a hard requirement for competitive players who won't switch to borderless)
- Up to 5 simultaneous viewers (P2P mesh)
- Join via a 6-character room code; browser-only viewing
- Zero-copy GPU pipeline from capture to encode (NVENC with native D3D11 input)
| Role | Requirement |
|---|---|
| Streaming host | Windows 10 (1903+) / 11, NVIDIA GTX 1060 or newer (NVENC required), upload bandwidth ≈ 25 Mbps × number of viewers |
| Viewer | Latest Chrome / Edge with hardware decode enabled |
| Signaling server | A small Linux VPS |
There is no TURN relay — video always flows directly (P2P) between the host and each viewer. A viewer on the same network as the host always works. A viewer on a different network only works if the host's router supports UPnP (Framewire attempts automatic port mapping on startup); if the router doesn't support/allow UPnP, or there's carrier-grade NAT upstream, that viewer can't connect.
This is a personal MVP and not yet production-ready.
- Feasibility spikes (capture/encode fps & latency measurements): done
- Full capture → encode → deliver pipeline: implemented
- P2P mesh multi-viewer streaming: verified working locally (same-machine test); real fps/latency numbers and 5-viewer host-bandwidth measurements on separate machines are still pending
DXGI_ERROR_ACCESS_LOSTunder exclusive fullscreen: partially unresolved
Dual-licensed under MIT OR Apache-2.0. See LICENSE-MIT / LICENSE-APACHE.