Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
MOONLIGHT(1)		    Moonlight Embedded Manual		    MOONLIGHT(1)

NAME
     Moonlight Embedded - Open source implementation of NVIDIA's GameStream

SYNOPSIS
     Usage: moonlight <action> [options] [host] [-port <number>]
	    moonlight <configfile>

ACTIONS
     pairPair this computer with the host.

     unpair
	 Unpair this computer with the host.

     stream
	 Stream game from host to this computer.

     listList all available games and application on host.

     quitQuit the current running game or application on host.

     map Create a mapping for the specified INPUT device.

     helpShow help for all available commands.

OPTIONS
     -config [CONFIG]
	 Load configuration file CONFIG.  All options specified before -config
	 will be overwritten by the options in CONFIG.	This options can be used
	 multiple times.

     -save [CONFIG]
	 Save the configuration provided by the options on the command line and
	 all loaded configuration files to the file CONFIG.

     -720Use the resolution 1280x720 for streaming.  This is the default option.

     -1080
	 Use the resolution 1920x1080 for streaming.

     -4k Use the resolution 3840x2160 for streaming.

     -width [WIDTH]
	 Change the horizontal resolution to WIDTH

     -height [HEIGHT]
	 Change the vertical resolution to HEIGHT

     -fps [FPS]
	 Change the number of frame per second to FPS.	Defaults to 60 FPS.

     -bitrate [BITRATE]
	 Change bitrate to BITRATE Kbps.  By default the bitrate depends on the
	 selected resolution and FPS.  For resolution 1080p and 60 FPS and
	 higher, 20 Mbps is used.  For resolution 1080p or 60 FPS and higher, 10
	 Mbps is used For other configurations, 5 Mbps is used by default.

     -packetsize [PACKETSIZE]
	 Change the network packetsize to PACKETSIZE bytes.  The packetsize
	 should the smaller than the MTU of the network.  This value must be a
	 multiple of 16.  By default, 1392 is used on LAN and 1024 on WAN.

     -codec [CODEC]
	 Select codec to use.  Can be 'auto', 'h264', 'h265', 'hevc', or 'av1'.
	 Not all video decoders support H.265/HEVC or AV1.  Will still use H.264
	 if server doesn't support HEVC or AV1.

     -hdrEnable hdr display for drm_vaapi/drm/wayland_vaapi/wayland platform.

     -yuv444
	 Try to use yuv444 format.Better video quality but not efficiency.
	 Note: hevc(h265) with yuv444 format is the more common combination.
	 Need sunshine host support(version >=24.0) and just support vaapi/soft-
	 ware/x11/drm/wayland/drm_vaapi/x11_vaapi platform.  If meet
	 h264+YUV444P, 'drm/wayland' platform is recommended.  x11 platform also
	 can use, but slow than others.

     -filters [FILTERS]
	 Arguments as '[color_primaries:p3],[light:0:100:400],[scale:fmt:size]'
	 color_primaries can use p3|bt2020|bt601|bt709.  light fill minDisplay-
	 Luminance:maxfall:maxDisplayLuminance.  scale can fill fmt|size. Fill
	 size will change decoder frame w,h to display width and height.Fill fmt
	 will change frame format to better compatible format such as ARGB or
	 X2RGB10.  wayland_vaapi platform can use scale:fmt filters to render
	 yuv444.  Use color_primaries:p3 to change hdr bt2020 to hdr display p3.
	 Use light try to finish light tonemap.This may not supported now.
	 Note: this option may not work correctly because of FreeBSD HDR support
	 or option implemention.  The option is only worked with
	 drm|drm_vaapi|wayland|wayland_vaapi platform.

     -render_style [fixed/fill/fixed_fill]
	 Change video render style to selected option. Only platform 'software
	 or vaapi' and no -hdr can work.

     -rotate [0/90/180/270]
	 Enable display rotate. Default is 0.  Work on rk/drm/drm_vaapi plat-
	 form.

     -modeset
	 Enable modeset for drm/drm_vaapi platform.  Change connecter resolution
	 and fps to specified.

     -nograb
	 Fake grab keyboard and mouse.	Not grab window anymore.  Use
	 Ctrl+Alt+Shift+M to switch.  Use Ctrl+Alt to switch grab state by dis-
	 play server when enable fakegrab/nograb.  Note1: Default nograb mode
	 may lead pointer jump when gameing,try use ctrl+alt to switch grab mode
	 for normal usual.  Note2: drm[_vaapi] platform can use -nograb to en-
	 able VT-switch feature(alt+fN).

     -remote [yes/no/auto]
	 Enable optimizations for LAN or WAN streaming.

     -app [APP]
	 Change the requested app to execute to APP.  By default Steam is
	 started.

     -nosops
	 Stop GFE from changing the graphical settings of the requested game or
	 application.

     -localaudio
	 Play the audio on the host computer instead of this device.

     -surround [5.1/7.1]
	 Enable surround sound instead of stereo.

     -keydir [DIRECTORY]
	 Change the directory to save encryption keys to DIRECTORY.  By default
	 the encryption keys are stored in $XDG_CACHE_DIR/moonlight or
	 ~/.cache/moonlight

     -mapping [MAPPING]
	 Use MAPPING as the mapping file for all inputs.  This mapping file
	 should have the same format as the gamecontrollerdb.txt for SDL.  By
	 default the gamecontrollerdb.txt provided by Moonlight Embedded is
	 used.

     -platform [PLATFORM]
	 Select platform for audio and video output and input.	<PLATFORM> can
	 be vaapi, drm_vaapi, wayland_vaapi, x11_vaapi, software, drm, wayland,
	 x11, vulkan, drm_vulkan, x11_vulkan, wayland_vulkan, rk or fake etc.

	 Platform 'software/vaapi/vulkan' will choose x11/wayland/gbm display
	 automatically.  Platform 'x11[_vaapi]/wayland[_vaapi]/drm[_vaapi]' will
	 force to use relative server.	Platform 'drm_vaapi and wayland_vaapi'
	 support hdr display with vaapi decoder.  Platform 'drm and wayland' use
	 libyuv or libswscale to complete color convert, and support hdr also.
	 Platform 'vulkan' is experimental.

     -nounsupported
	 Don't stream if resolution is not officially supported by the server

     -quitappafter
	 Send quit app request to remote after quitting session

     -viewonly
	 Disable all input processing (view-only mode)

     -nomouseemulation
	 Disable gamepad mouse emulation (activated by long pressing Start but-
	 ton)

     -verbose
	 Enable verbose output

     -debug
	 Enable verbose and debug output

     -input [INPUT]
	 Enable the INPUT device.  By default all available input devices are
	 enabled.  Only evdev devices /dev/input/event* are supported.

     -sdlgp
	 Using SDL gamepad driver instead of evdev.

     -swapxyab
	 Swap x/y and a/b for gamepad.

     -audio [DEVICE]
	 Use <DEVICE> as audio output device on embedded system such as Rasp-
	 berry Pi.  The default value is 'sysdefault' for ALSA and 'hdmi' for
	 OMX on the Raspberry Pi.

     -windowed
	 Display the stream in a window instead of fullscreen.	Only available
	 when X11 or wayland platform is used.

CONFIG FILE
     Moonlight Embedded will load a configuration file from:

       $XDG_CONFIG_HOME/moonlight/moonlight.conf
       (fallback to ~/.config/moonlight/moonlight.conf)

     If no user specified configuration file is available the configuration will
     be loaded from:

       /usr/local/etc/moonlight/moonlight.conf

     A documented example configuration file can be found at /usr/lo-
     cal/etc/moonlight/moonlight.conf.

GAMEPAD
      Xbox360 controller need xb360gp(4) or 'multimedia/webcamd and cuse(3)'.
      X-input or d-input gamepads need hgame(4) or webcamd.
      FreeBSD supports some controllers.Please see hgame(4) xb360gp(4)
      ps4dshock(4) and FreeBSD forums.
      Embedded platforms such as 'x11/x11_vaapi/vaapi' use evdev driver.
      May be only evdev(not sdlgp) could support xbox360 seriers on FreeBSD.
      Use '$ moonlight map -input /dev/input/eventN >>
	   ~/.config/moonlight/gamecontrollerdb.txt'
      to create mapping for embedded(not sdlgp) platform.
      Or use 'x11/antimicrox' to create mapping for -sdlgp.
      $HOME/.config/moonlight/gamecontrollerdb.txt could be created and used
      by default.

      Option '-sdlgp' can enable sdl gamepad driver instead of evdev for
      embedded platform.
      Note: No rumble feature now.

KEYBOARD SHORTCUTS
      Use Ctrl+Alt+Shift+Q or Play+Back+LeftShoulder+RightShoulder to quit the
      streaming session.
      Use Ctrl+Alt+Shift+Z to Grab/Ungrab keyboard.
      Use Ctrl+Alt+Shift+M to fakeGrab/normalGrab keyboard.
      Use Ctrl+Alt+Shift+G to Enable/Disable vitual key on the top of touchpad
      for the windows precision touchpad.

      If could not grab the keyboard,try add write permition to
      /dev/input/evdevN for user.

EXAMPLE
     Pair:
       # moonlight pair 192.168.0.1

     Connect:
      The following cmd means to connect 192.168.0.1 with a resolution
     2560x1600.
       # moonlight stream -app Desktop -width 2560 -height 1600 192.168.0.1
      The following cmd means to connect 192.168.0.1 with a resolution 1080p
      and the fps 120.And try to decoding with GPU.
       # moonlight stream -app Steam -width 1920 -height 1080 -fps 120 \
			  -platform 'x11_vaapi' 192.168.0.1
      Do not want grab keyboard and mouse:
       # moonlight stream -app Desktop -width 1920 -height 1080 -fps 120 \
			  -platform 'vaapi' -fakegrab 192.168.0.1
      Try yuv444 video mode for better video quality:
       # moonlight stream -app Desktop -width 1920 -height 1080 -fps 120 \
			  -platform 'vaapi' -yuv444 -codec hevc 192.168.0.1
      Use '-config file -save file' to record lastest window size and site:
       # moonlight stream -app Desktop -width 1920 -height 1080 -fps 120 \
			  -config ~/moonlight/conf -save ~/moonlight/conf \
			  -platform 'vaapi' -yuv444 -codec hevc 192.168.0.1

COMMENTS
      Platform 'drm/wayland/software/x11' is decoding with cpu.
      Only some gpu support yuv444 video mode. And need sunshine host support.
      Platform '*vaapi' is decoding with gpu.
      If you want to decoding with intel gpu,you must do:
	1.Use platform 'x11_vaapi' or 'wayland_vaapi' or 'vaapi'
	2.Install package:libva-intel-driver/libva-intel-media-driver.

      Multi keyboard may meet bugs.Please man kbdmux or kbdcontrol.
      And try to disable kbdmux or use -input to specify wanted keyboards or mouses.

      Note1: If meet crash frequently, try adjust Integrated Graphics Device(IDG)
	    Aperture size from BIOS.
      Note2: If want use drm platform smoothly, The sunshine need to switch to
	    software encoder to enable slice multi-thread for decoder.
      Note3: If have no audio device,use vitual_oss:
	    # virtual_oss -C 2 -c 2 -r 48000 -b 16 -s 1024 -P /dev/null \
	    -R /dev/null -w vdsp.ctl -d dsp &
      Note4: If use moonlight with rk3399 or others weak cpu with drm render. Enable
	    software encoder is recommended, and use '-filters scale:fmt' to
	    avoid bugs for display, use '-platform drm' to display, use
	    '-bitrate 10000' and '-1080' to reduce cpu load.

AUTHOR
     Iwan Timmer <irtimmer@gmail.com>

moonlight 2.7.8 		   2026-08-30			    MOONLIGHT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=moonlight&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help