Steam Link on Raspberry Pi 5: Performance Tuning Guide

Steam Link Performance Tuning on Raspberry Pi

Last tested: Raspberry Pi OS Bookworm 64-bit | April 1, 2026 | Raspberry Pi 5 (4GB and 8GB)

Steam Link Raspberry Pi 5 support is official from Valve, and the board handles it well. The Pi 5 acts as a small client that decodes a video stream, sends controller input back, and displays the result in real time. With a quad-core 2.4GHz Cortex-A76 CPU and a VideoCore VII GPU with a hardware 4Kp60 HEVC decoder, the board handles 1080p and 4K 60fps streaming when the rest of the setup is solid. Performance tuning here means keeping the Pi cool and well-powered, giving it a stable network path, and matching Steam Link settings to what the hardware and network can actually deliver.

Key Takeaways

  • Raspberry Pi 5 has enough CPU and GPU power to serve as an effective Steam Link client for 1080p and 4K streaming
  • Active cooling and a stable power supply are not optional. Thermal throttling kills decode performance and causes stutter
  • Wired Gigabit Ethernet is the best foundation. Strong 5GHz Wi-Fi works at moderate bitrates.
  • Match stream resolution, frame rate, codec, and bitrate to what your network can sustain under load, not peak conditions
  • Hardware encoders on the gaming PC (NVENC, AMF, Quick Sync) matter as much as any setting on the Pi side
  • H.264 is the safe default. H.265 gives better quality at lower bitrates but loads encoder and decoder harder.
Steam link chain diagram - Steam Link Raspberry Pi 5

Hardware and OS Preparation

Pi 5 configuration

Raspberry Pi 5 with 4GB or 8GB RAM gives comfortable headroom for Steam Link alongside the desktop and background services. The BCM2712 SoC with Cortex-A76 cores delivers substantially stronger CPU performance than any earlier Pi, which helps with decoding and general responsiveness during sessions.

Power supply and cooling

Treat the power supply and cooling as part of performance tuning, not accessories. The official Raspberry Pi 5 case includes a temperature-controlled fan and heatsink that keep the CPU and GPU within a comfortable range under heavy decode load. Without active cooling, the SoC throttles clock speeds when it gets warm, which lengthens frame decode time and creates stutter that looks like a network problem but is not. Check temperature during sessions to confirm cooling is doing its job:

vcgencmd measure_temp

# Watch temperature every second
watch -n 1 vcgencmd measure_temp

Install and update Raspberry Pi OS Bookworm

Raspberry Pi OS Bookworm is the recommended OS for Pi 5. After flashing and first boot, update fully before installing Steam Link. Recent updates include improvements to the KMS graphics driver, VideoCore VII support, and HDMI timing that directly affect streaming performance:

sudo apt update && sudo apt full-upgrade -y
sudo reboot

For a Steam Link build that runs 24/7, boot from USB SSD rather than microSD to remove the most common reliability failure point. See Booting Raspberry Pi from USB SSD for the setup. If staying on microSD, see Preventing SD Card Corruption on Raspberry Pi and Setting Up zram on Raspberry Pi.

Display configuration

Connect directly to the TV or monitor via HDMI. Pi 5 supports dual 4Kp60 HDMI with HDR. In Raspberry Pi OS, confirm the screen configuration shows the correct resolution and refresh rate. If overscan settings are adding black borders or scaling the image, fix that before launching Steam Link. The client needs to see the real display size or it wastes cycles on unnecessary scaling.

Installing Steam Link

Valve officially supports Steam Link on Raspberry Pi 5. Install it directly from the repository:

sudo apt update
sudo apt install steamlink -y

Launch from the Games menu or from a terminal:

steamlink

Pairing with your gaming PC

Steam Link shows a PIN on the Pi screen during pairing. Enter it in the Steam client on the gaming PC to confirm the connection. Once paired, the Pi appears in the Remote Play list in Steam settings. Pairing also lets the Pi wake the PC, start sessions, and access the full library.

Controllers and audio routing

Xbox, PlayStation, and generic USB controllers connect via USB cable or Bluetooth and are passed through Steam Link automatically. Walk through the mapping and test process in the Steam Link interface to confirm all inputs respond without visible delay before your first session.

For audio, select the HDMI output in Raspberry Pi OS system settings and leave Steam Link at its default audio device. This keeps audio and video routed through the same path and avoids sync issues that show up when they go through separate devices.

Network Tuning

Wired Ethernet

Raspberry Pi 5 has a Gigabit Ethernet port. When both the Pi and the gaming PC connect to the same router or switch via Ethernet, the path has low ping, low jitter, and enough throughput for 1080p 60fps or 4K 60fps without fighting for bandwidth. Wired is always the first recommendation before troubleshooting anything else.

Wi-Fi considerations

Pi 5 supports dual-band 802.11ac. On 5GHz with a nearby access point and a clear channel, Wi-Fi can sustain enough throughput for 1080p 60fps at moderate bitrates. For Wi-Fi setups, router placement, channel selection, and line of sight matter considerably. If several devices share the same access point, keep large file transfers on a different band or time window to avoid competing with the stream.

Bitrate targets

  • 1080p 60fps over Ethernet: 15 to 25 Mbit/s is a reliable starting range
  • 4K 60fps over Ethernet: 30 to 50 Mbit/s depending on codec and host GPU
  • 1080p 60fps over 5GHz Wi-Fi: 12 to 15 Mbit/s for safety
  • Low bandwidth or congested Wi-Fi: 8 to 12 Mbit/s with H.264

Set the manual bitrate cap in Steam Link’s advanced settings slightly below your measured stable throughput. A cap that leaves a small headroom prevents brief bandwidth dips from causing sharp stutter.

Measuring your network path

# Ping test from Pi to gaming PC (replace IP with your PC's address)
ping -c 50 192.168.1.50
# Throughput test -- run iperf3 server on gaming PC first
iperf3 -s

# Then run client on the Pi
iperf3 -c 192.168.1.50

A stable setup shows low average ping with small variance. Packet loss appears as occasional timeouts in the ping output and aligns with visible glitches in the stream.

Steam Link Video and Audio Settings

Resolution and frame rate

1080p 60fps is the right baseline for most setups. It balances clarity, latency, and network demand. Pi 5 handles 4K 60fps when the display, host PC, and network are all capable. Start at 1080p, confirm everything is smooth, then step up if you want to test 4K.

H.264 vs H.265

H.264 keeps load light on both the host encoder and the Pi decoder. It is the safe default for most setups. H.265 (HEVC) offers better compression and can improve image quality at a given bitrate, but it places more demand on both sides. Pi 5 includes a hardware 4Kp60 HEVC decoder, so H.265 is a real option. Switch between the two and test with the same game and scene to see which feels better on your specific network and host GPU.

Bitrate cap and quality settings

Use the manual bitrate cap in Steam Link’s advanced settings. Set it a step below your iperf3 measured throughput so brief congestion does not cause frame drops. For a wired 1080p setup, 20 Mbit/s is a reasonable starting cap. For Wi-Fi, start at 12 Mbit/s and raise it only if you confirm the link is stable at that rate over a full session.

Audio settings

Stereo audio at a moderate bitrate is the safe default. Surround modes and higher bitrates suit strong wired links. If audio glitches appear while video looks stable, dropping to stereo or reducing audio bitrate quickly confirms whether the link is at its limit.

Host PC Configuration

Enable hardware encoding

On the gaming PC, hardware encoders (NVIDIA NVENC, AMD AMF, Intel Quick Sync) free the CPU from encoding work and keep latency low. Steam Remote Play uses them automatically when the GPU and driver support them. Hardware encoding is well suited to the continuous nature of game streaming. If the host CPU is spiking during sessions, check whether Steam is falling back to software encoding.

Match game resolution to stream profile

For a 1080p 60fps stream, render the game at 1080p. Running a higher resolution that gets scaled down by the GPU wastes GPU cycles and increases encode time. Lower demanding graphical settings like heavy anti-aliasing, ray tracing, or ultra-resolution textures if they cause frame time spikes that reach the encoder as uneven frames.

Vsync and frame limiters

Set vsync and frame limiters to match the target stream frame rate. Conflicting timing controls between the game engine, the GPU driver, and Steam Link create micro-stutter. In most cases, enabling vsync in the game and setting an in-game frame limit of 60fps works well. Disable the Steam overlay and any performance monitoring overlays during troubleshooting to eliminate extra variables.

Monitor host load during sessions

Use GPU monitoring tools on Windows or Linux to watch CPU usage, GPU usage, VRAM, and encoder load while a session runs. If the GPU or encoder stays near 100 percent, the bottleneck is on the host side, not the Pi or the network. Reduce resolution, lower visual effects, or drop frame rate to stabilize the stream before changing anything on the Pi.

Raspberry Pi 5 Diagnostics and Tuning

CPU governor

The CPU governor controls how aggressively the cores boost to higher frequencies. Switching to the performance governor keeps clocks consistent during decode work and reduces jitter caused by frequency scaling. Test it during a session and monitor temperature, since higher sustained clocks generate more heat:

# Set performance governor on all cores
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

# Confirm
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

This setting does not persist across reboots. Add it to /etc/rc.local or a systemd service if you want it permanent.

Watching system load during sessions

# CPU and memory load
htop

# Temperature
watch -n 1 vcgencmd measure_temp

# Check for throttling events
vcgencmd get_throttled

The get_throttled command returns a hex value. Any non-zero value means the board has throttled or is currently throttling. See the Raspberry Pi Random Reboots Under Load article for a full breakdown of the throttle flag values and what each one means.

Frame drops and audio desync

Frame drops usually come from bitrate too high for the link, codec load too heavy for the hardware, or the board running warm. Try these in order: drop bitrate, switch from H.265 to H.264, then check temperature. Audio desync can come from either side. Lowering audio buffering in Steam Link settings and watching for large spikes in frame time helps identify whether it is encoder latency on the host or decoder lag on the Pi.

Common Issues and Fixes

Steam Link appears windowed or desktop shows through

Run Steam Link in a dedicated fullscreen session. Disable the Raspberry Pi OS screen saver and any panels or overlays that can steal focus. Keep the display configuration simple with a single active monitor. Most focus-stealing issues disappear when the desktop is otherwise idle.

High input latency on a seemingly good network

When ping looks low but controller input feels slow, frame timing on the host PC is almost always the cause. If the game, the encoder, or the GPU pipeline is struggling, new frames take longer to appear, and input feels delayed even though network latency is fine. Check the frame time graph in Steam, lower graphics quality, and close heavy background tasks before blaming the network or the Pi.

Wi-Fi only homes

For homes where Ethernet is not practical, realistic settings keep the experience usable. A 1080p 60fps profile with H.264, a bitrate cap around 10 to 15 Mbit/s, and stereo audio behaves better than an ambitious 4K profile on a congested network. Place the access point in the same room as the Pi and TV if possible. Reducing walls and interference between the Pi and the router makes more difference than any software setting.

4K TVs with HDR processing delay

Some 4K televisions add processing delay through HDR tone mapping and motion smoothing. If input feels sluggish on a particular TV, enable Game Mode in the TV settings and turn off extra image processing features. In Raspberry Pi OS, match the output resolution and refresh rate to the TV’s native values to avoid extra scaling steps that add timing problems.

Example Steam Link Profiles

Stable 1080p 60fps over Ethernet

  • Hardware: Raspberry Pi 5 (4GB or 8GB), Gigabit Ethernet
  • Resolution: 1920×1080 at 60fps
  • Codec: H.264
  • Bitrate cap: 18 to 22 Mbit/s
  • Audio: stereo
  • CPU governor: performance

This profile suits most games and TVs. It keeps latency low and requirements reasonable on both the host and the Pi.

4K 60fps on strong 5GHz Wi-Fi

  • Hardware: Raspberry Pi 5 (8GB), 5GHz 802.11ac near access point
  • Resolution: 3840×2160 at 60fps
  • Codec: H.265 HEVC
  • Bitrate cap: start at 20 Mbit/s and raise toward 30 to 40 Mbit/s only after confirming the link is stable at each step
  • Audio: stereo or surround depending on link stability

This profile needs a powerful gaming PC with hardware encoding, a strong Wi-Fi signal, and a 4K display. Test in stages rather than jumping straight to the highest settings.

Low bandwidth profile for congested Wi-Fi

  • Hardware: Raspberry Pi 5, mixed Wi-Fi environment
  • Resolution: 1280×720 or 1920×1080
  • Frame rate: 30 or 60fps depending on test results
  • Codec: H.264
  • Bitrate cap: 8 to 12 Mbit/s
  • Audio: stereo at moderate bitrate

This profile keeps demands low so streaming remains usable even when neighbors and other devices compete for the same spectrum.

Maintenance

Keep Raspberry Pi OS, firmware, Steam Link, and the Steam client on the gaming PC all current. Pi 5 firmware updates frequently improve VideoCore VII behavior, HEVC decoding, and HDMI timing. Steam Link updates touch codec handling and Remote Play logic. Running outdated versions on either side can cause compatibility gaps that show up as unexplained stutter or connection drops.

# Update OS and firmware
sudo apt update && sudo apt full-upgrade -y
sudo reboot

After any major system or driver update, run a short test with a known game to confirm performance is still stable before a longer session.

FAQ

Can Raspberry Pi 5 replace a dedicated Steam Link device?

Yes. Valve officially supports Steam Link on Raspberry Pi 5. With suitable network and host PC hardware it streams at up to 4K 60fps. It does more than a dedicated Steam Link hardware device could, since you can run other services on the same board when it is not being used for gaming.

Is Ethernet required for good Steam Link performance?

Not required, but strongly recommended. Gigabit Ethernet eliminates Wi-Fi interference and allows higher bitrate caps with fewer dropped frames. Dual-band Wi-Fi at 5GHz works at moderate bitrates when the signal is strong and the access point is not overloaded.

Which codec should I use, H.264 or H.265?

Start with H.264. It is lighter on both the host encoder and the Pi decoder, and it works well on most networks. Switch to H.265 if you want better image quality at a given bitrate and your host GPU has a capable hardware encoder. Pi 5 includes a hardware 4Kp60 HEVC decoder so it handles H.265 without software decode overhead.

How does thermal throttling affect Steam Link?

When the Pi 5 gets too warm, firmware reduces CPU and GPU clock speeds automatically. This delays video decoding and raises frame times, which appears as stutter or hitches in the stream. An active cooling case with a fan and heatsink prevents this. Run vcgencmd get_throttled after a session to check whether any throttle events occurred.

What is a good starting profile for a first session?

1080p 60fps, H.264, bitrate cap around 18 Mbit/s, stereo audio, Pi 5 on Ethernet, gaming PC using hardware encoding. That combination works reliably across most setups. Adjust from there once you know the session is stable.

Why does input feel slow even when ping is low?

Low ping does not mean low frame latency. If the host PC GPU or encoder is under heavy load, new frames take longer to produce and reach the Pi regardless of network speed. Check the frame time graph in Steam, reduce in-game graphics settings, and make sure hardware encoding is active on the host before adjusting anything on the Pi.

References


About the Author

Chuck Wilson has been programming and building with computers since the Tandy 1000 era. His professional background includes CAD drafting, manufacturing line programming, and custom computer design. He runs PidiyLab in retirement, documenting Raspberry Pi and homelab projects that he actually deploys and maintains on real hardware. Every article on this site reflects hands-on testing on specific hardware and OS versions, not theoretical walkthroughs.

Was this helpful?

Yes
No
Thanks for your feedback!