Peer-to-peer remote desktop application in C++
DirectDesk is a remote desktop application for Windows, made in C++.
The project uses DirectX + Windows Media Foundation for capturing video data, encoding it into H.264 on the GPU, decoding H.264 frames back into readable content and rendering them, along with Windows.h.
P2P UDP communication is utilized, which means the app won't work when connected to a symmetric NAT.
STUN servers used are stun1.l.google.com and stun2.l.google.com. A custom signaling server was implemented in Go.
Make sure you have a C++ compiler, Cmake and vcpkg installed and configured.
- Clone the repository
git clone https://github.com/kamix-08/directdesk
cd directdesk- Generate build files
mkdir build
cd build
# replace [path_to_vcpkg] with the actual path
cmake .. -DCMAKE_TOOLCHAIN_FILE=[path_to_vcpkg]/scripts/buildsystems/vcpkg.cmake- Build
cmake --build . --config ReleaseYou may need to turn off your antivirus' firewall.
The project is divided into 3 directories:
- streamer (user streaming the desktop image)
- reciever (user receiving the desktop image)
- shared (code shared by the two)