How to Stream Games in 720p from the Cloud on a 3Mbps DSL Line using Parsec

There are three main hosted services I’ve tried. Geforce Now, Google Stadia, and Microsoft Xbox Live. The two self hosted options I’ve tried are Parsec, and Steam Remote Play. They all work to some degree amazingly enough, although not really playable on my slow connection with default settings.

Parsec is the only option that allows you to play ANY Windows game. You can then stream Geforce Now, Google Stadia, Steam, Epic Games, Origins, and any other standalone windows game. You can also use it as performant remote desktop for CAD or other graphics heavy programs.

It allows you to reduce the framerate to 30fps, the resolution to 1280×720, and the bitrate to 1Mbps. Even though I have “3Mbps” DSL, in the real word it’s more like 2.5Mbps. When I set the bitrate to 2Mbps it saturates my bandwidth sometimes. I found the best was to set bitrate to 1Mbps or 2Mbps depending on the time of day, or if there was anyone else using it.

Create your cloud virtual machine in Azure, and install parsec

From: medium.com/azure-cloud/a…

  • Connecting to the VM with TeamViewer, open a prompt as admin (Start Menu -> search for “cmd” -> right click on command prompt and select Run as Administrator).
  • Go to the C:\Program Files\NVIDIA Corporation\NVSMI folder, and run nvidia-smi. This will get you a table that gives you both what mode your Tesla is set to (which will be TCC by default, check under the heading TCC/WDDM), and the GPU_ID, which is the thing under the Bus-Id heading.
  • Run nvidia-smi -g {GPU_ID} -dm {0|1} with your Bus-Id and 0 to set it to WDDM, like so (the GPU_ID may differ):

nvidia-smi -g 1:00:00.0 -dm 0

Instead of Teamviewer you can use the open source DWService: www.dwservice.net/

If using a different cloud provider, check out:
github.com/parsec-cloud/…

My parsec config:

# All configuration settings must appear on a new line.
# All whitespace, besides the newline character '\n', is ignored.
# All settings passed via the command line take precedence.
# The configuration file will be overwritten by Parsec when changing settings,
#   so if you edit this file while Parsec is running, make sure to save this file
#   and restart Parsec immediately so your changes are preserved.

# Example:
# encoder_bitrate = 10

app_run_level = 3
app_discord = 0
client_vsync = 0
client_decoder_index = 2
client_decoder_h265 = true
server_resolution_x = 1280
server_resolution_y = 720
encoder_bitrate = 2
encoder_fps = 30
encoder_fps_1 = 30

I installed parsec from: parsecgaming.com/downloa…

I use Ubuntu 20.04 and and Nvidia Geforce 1050ti video card. I had to install this tweak to get Parsec to do hardware decoding using libva-vdpau vaapi. I borrowed it from the moonlight project snap.

I got this error when running vainfo to verify the VAAPI-VDPAU wrapper.

vainfo
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

My solution was to borrow nvidia_drv_video.so from moonlight, I have not idea why this was not installed with the proprietor nvidia drivers.

sudo snap install moonlight
sudo ln -s /snap/moonlight/current/usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so

It used to be part of the vdpau-va-driver package, but that is no longer available on 20.04. It’s replaced by the mesa-va-driver, which does not contain it.

Parsec Shortcuts

From: support.parsecgaming.com…

CLIENT MENU OPTIONS

  • Interact with chat – ctrl + shift + c
  • Toggle menu – ctrl + shift + m
  • Toggle windowed mode – ctrl + shift + w
  • Detach mouse – ctrl + alt + z
  • Immersive mode – ctrl + shift + i

EXITING THE STREAM

  • Quitting the Mac Application – command + Q or command + W
  • Quitting the Windows Application – alt + F4
  • Quitting the Raspberry Pi Application – ctrl + alt + ~
  • Quitting the Linux Application – ctrl + alt + ~

FRIEND SHORTCUTS

  • Allowing access to a friend trying to make a connection who doesn’t have admin access – ctrl + F1 when they try to connect
  • Kick everyone from the stream all at once (the panic button!) – ctrl + F3

IMMERSIVE MODE

  • Toggling the Windows hotkey passthroughs – ctrl + shift + i
    • This allows you to send data to the host when you use ctrl + alt + delete, the Windows button, alt + tab

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.