moonlight-stream / moonlight-qt
GameStream client for PCs (Windows, Mac, Linux, and Steam Link)
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing moonlight-stream/moonlight-qt in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewMoonlight PC Moonlight PC is an open source PC client for NVIDIA GameStream and Sunshine. Moonlight also has mobile versions for Android and iOS. You can follow development on our Discord server and help translate Moonlight into your language on Weblate. Features • Hardware accelerated video decoding on Windows, Mac, and Linux • H.264, HEVC, and AV1 codec support (AV1 requires Sunshine and a supported host GPU) • YUV 4:4:4 support (Sunshine only) • HDR streaming support • 7.1 surround sound audio support • 10-point multitouch support (Sunshine only) • Gamepad support with force feedback and motion controls for up to 16 players • Support for both pointer capture (for games) and direct mouse control (for remote desktop) • Support for passing system-wide keyboard shortcuts like Alt+Tab to the host Downloads • Windows, macOS, and Steam Link • Snap (for Ubuntu-based Linux distros) • Flatpak (for other Linux distros) • AppImage • Raspberry Pi 4 and 5 • Generic ARM 32-bit and 64-bit Debian packages (not for Raspberry Pi) • Experimental RISC-V Debian packages • NVIDIA Jetson and Nintendo Switch (Ubuntu L4T)-Ubuntu) Nightly Builds • Downloads Special Thanks Hosting for Moonlight's Debian and L4T package repositories is graciously provided for free by Cloudsmith. Building Windows Build Requirements • Qt 6.7 SDK or later (earlier versions may work but are not officially supported) • Visual Studio 2022 (Community edition is fine) • Select **MSVC** option during Qt installation. MinGW is not supported. • 7-Zip (only if building installers for non-development PCs) • Graphics Tools (only if running debug builds) • Install "Graphics Tools" in the Optional Features page of the Windows Settings app. • Alternatively, run and reboot. macOS Build Requirements • Qt 6.7 SDK or later (earlier versions may work but are not officially supported) • Xcode 14 or later (earlier versions may work but are not officially supported) • create-dmg (only if building DMGs for use on non-development Macs) Linux/Unix Build Requirements • Qt 6 is recommended, but Qt 5.12 or later is also supported (replace with when using Qt 5). • GCC or Clang • FFmpeg 4.0 or later • Install the required packages: • Debian/Ubuntu: • Base Requirements: • Qt 6 (Recommended): • Qt 5: • RedHat/Fedora (RPM Fusion repo required): • Base Requirements: • Qt 6 (Recommended): • Qt 5: • Building the Vulkan renderer requires a / version of at least v7.349.0 and FFmpeg 6.1 or later. Steam Link Build Requirements • Steam Link SDK cloned on your build system • STEAMLINK_SDK_PATH environment variable set to the Steam Link SDK path **Steam Link Hardware Limitations** Moonlight builds for Steam Link are subject to hardware limitations of the Steam Link device: • Maximum resolution: **1080p (1920x1080)** • Maximum framerate: **60 FPS** • Maximum video bitrate: **40 Mbps** • **HDR streaming is not supported** on the original hardware Docker containers If you want to use Docker for building, look at this repo containing canonical containers for different architectures, which handle building deps and extra linking for you. Build Setup Steps • Install the latest Qt SDK (and optionally, the Qt Creator IDE) from https://www.qt.io/download • You can install Qt via Homebrew on macOS, but you will need to use to be able to create debug builds of Moonlight. • You may also use your Linux distro's package manager for the Qt SDK as long as the packages are Qt 5.12 or later. • This step is not required for building on Steam Link, because the Steam Link SDK includes Qt 5.14. • Run from within • Open the project in Qt Creator or build from qmake on the command line. • To build a binary for use on non-development machines, use the scripts in the folder. • For Windows builds, use and . Execute these scripts from the root of the repository within a Qt command prompt. Ensure 7-Zip binary directory is on your . • For macOS builds, use . Execute this script from the root of the repository and ensure Qt's folder is in your . • For Steam Link builds, run from the root of the repository. • To build from the command line for development use on macOS or Linux, run then or . • The final binary will be placed in . • To create an embedded build for a single-purpose device, use and build normally. • This build will lack windowed mode, Discord/Help links, and other features that don't make sense on an embedded device. • For platforms with poor GPU performance, add to prefer direct KMSDRM rendering over GL/Vulkan renderers. Direct KMSDRM rendering can use dedicated YUV/RGB conversion and scaling hardware rather than slower GPU shaders for these operations. Contribute • Fork us • Write code • Send Pull Requests Check out our website for project links and information.