Phone Ctrl

open source
Phone Ctrl preview
Mar 2026 - Mar 2026
C++FlutterDartWebRTCNode.jsFFmpegCMakeWindows API

C++ Windows host + Flutter mobile client for live screen streaming and touch-to-input control over WebRTC/H.264

phoneCtrl turns your phone into a pocket TeamViewer. The C++ host on Windows captures the display via DXGI, encodes it with FFmpeg/libx264 at up to 60 fps, and streams it over a WebRTC/H.264 data channel to a Flutter mobile client. Touch gestures on the phone are translated to Windows SendInput mouse and keyboard events, giving full remote control with DTLS-SRTP encrypted traffic.

Low-latency remote desktop from laptop to phone over WebRTC. • Laptop host (C++/Windows): DXGI GPU screen capture → FFmpeg libx264 H.264 encoder → Boost.Beast WebSocket server → Windows SendInput for mouse/keyboard injection. • Phone client (Flutter/Dart): Android & iOS; RTCVideoView full-screen H.264 decode; touch overlay translates gestures to JSON input events over WebRTC data channel. • Signaling: Node.js WebSocket server for SDP/ICE exchange. • Security: all WebRTC media and data channel traffic is DTLS-SRTP encrypted; designed for trusted local networks. • Gestures: single tap = left click, long press = right click, drag = mouse move, two-finger scroll, double-tap = toolbar. • Build: CMake + vcpkg (FFmpeg[x264] + Boost); Flutter SDK ≥ 3.0.