Giter VIP home page Giter VIP logo

moonlight-qt's Introduction

Moonlight 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.

AppVeyor Build Status Downloads Translation Status

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)
  • 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

Special Thanks

Hosted By: Cloudsmith

Hosting for Moonlight's Raspberry Pi and L4T package repositories is graciously provided for free by Cloudsmith.

Building

Windows Build Requirements

  • Qt 5.15 SDK or later
  • Windows 7 or later
  • 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)

macOS Build Requirements

  • Qt 6.2 SDK or later
  • macOS Mojave (10.14) or later
  • Xcode 13 or later
  • create-dmg (only if building DMGs for use on non-development Macs)

Linux/Unix Build Requirements

  • Qt 5.9 SDK or later
  • GCC or Clang
  • Install the required packages:
    • Debian/Ubuntu: libegl1-mesa-dev libgl1-mesa-dev libopus-dev libqt5svg5-dev libsdl2-dev libsdl2-ttf-dev libssl-dev libavcodec-dev libva-dev libvdpau-dev libxkbcommon-dev qtwayland5 qt5-qmake qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev wayland-protocols qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-window2 qml-module-qtquick2
    • RedHat/Fedora: openssl-devel SDL2-devel SDL2_ttf-devel ffmpeg-devel qt5-qtsvg-devel qt5-qtquickcontrols2-devel libva-devel libvdpau-devel opus-devel pulseaudio-libs-devel alsa-lib-devel
  • FFmpeg 4.0 or later is required to build. If your distro doesn't package FFmpeg 4.0 or later, you can build and install it from source on https://ffmpeg.org/

Steam Link Build Requirements

  • Steam Link SDK cloned on your build system
  • STEAMLINK_SDK_PATH environment variable set to the Steam Link SDK path

Build Setup Steps

  1. 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 brew install qt --with-debug 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.9 or later.
    • This step is not required for building on Steam Link, because the Steam Link SDK includes Qt 5.9.
  2. Run git submodule update --init --recursive from within moonlight-qt/
  3. 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 scripts folder.
      • For Windows builds, use scripts\build-arch.bat and scripts\generate-bundle.bat. Execute these scripts from the root of the repository within a Qt command prompt. Ensure 7-Zip binary directory is on your %PATH%.
      • For macOS builds, use scripts/generate-dmg.sh. Execute this script from the root of the repository and ensure Qt's bin folder is in your $PATH.
      • For Steam Link builds, run scripts/build-steamlink-app.sh from the root of the repository.
    • To build from the command line for development use on macOS or Linux, run qmake moonlight-qt.pro then make debug or make release
    • To create an embedded build for a single-purpose device, use qmake "CONFIG+=embedded" moonlight-qt.pro 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 GL performance, add "CONFIG+=glslow" to prefer direct KMSDRM rendering over EGL/GLES renderers. Direct KMSDRM rendering can use dedicated YUV/RGB conversion and scaling hardware rather than slower GPU shaders for these operations.

Contribute

  1. Fork us
  2. Write code
  3. Send Pull Requests

Check out our website for project links and information.

moonlight-qt's People

Contributors

5idereal avatar abusse avatar arturszulc avatar bittin avatar carlchina avatar cgutman avatar comradekingu avatar dankxylese avatar dockuro avatar grtw2116 avatar happyharryh avatar hebgeennaam1 avatar jhakonen avatar jmt-gh avatar jorys-paulin avatar kaitul avatar konst2 avatar matoi974 avatar matrixdj96 avatar nicolas-93 avatar raidancampbell avatar reloxx13 avatar rombie18 avatar sanhoe avatar shakedex avatar unbiaseduser-github avatar watchha avatar wh1t3st4r avatar zan1456 avatar zaraza225 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.