Steam Remote Play, Sunshine, and Moonlight measurement guide
Scope
Steam Remote Play is Steam's integrated host/client path. Sunshine is a self-hosted streaming host for Moonlight clients. Compare end-to-end behavior, not feature names or a single network ping.
Pair on a trusted local network first. Do not publish pairing PINs, credentials, host addresses, logs with tokens, or an unauthenticated administration interface.
Baseline
Use wired host networking where possible, one client location, one game scene, SDR, a conservative codec/resolution/frame rate/bitrate, and no competing downloads. Record host GPU/encoder and capture path, host render FPS, router/AP topology, client decoder/display, controller path, software versions, and security exposure.
Change one variable
Test in this order: streaming system, codec, resolution, frame rate, bitrate, host capture/display mode, client frame pacing, then HDR. Do not change Wi-Fi band, codec, and bitrate together. Resolve packet loss before increasing quality.
Measurements
| Stage | Measure | Failure signature |
|---|---|---|
Host render | Game FPS/frame time | Stream cannot exceed unstable source |
Capture/encode | Encode time and queue | Periodic stalls under GPU saturation |
Network | Latency, jitter, loss, retransmit | Bursts, artifacts, disconnects |
Client decode | Decode time and dropped frames | Smooth network but client stutter |
Display/input | Presentation cadence and end-to-end response | Judder or delayed control |
Run the same input sequence for at least three equal passes. Report local LAN and Internet paths separately; an ICMP ping is not an end-to-end video/input latency result.
Side effects
Higher resolution/frame rate/bitrate increases encode, network, decode, and client power; HDR adds 10-bit and display-chain requirements; host GPU saturation can delay encoding; Wi-Fi power saving can add jitter; controller emulation and desktop capture expand the security/permission surface.
Rollback
Return to the conservative baseline preset, remove manual port exposure, disable unneeded UPnP/forwarding rules, revoke unused paired clients, restore the original host display/capture path, and confirm local input and audio still work outside streaming.
Selection guide
| Need | Start with | Reconsider when |
|---|---|---|
Steam library and simple pairing | Steam Remote Play | Required codec/control/telemetry is absent |
Cross-store/self-hosted control | Sunshine + Moonlight | Host capture/encoder path is unsupported |
Remote Internet access | Current upstream secure guidance | Only direct broad port exposure is understood |
HDR | SDR baseline first | Any host, codec, client, or display requirement fails |
Frequently asked questions
Is higher bitrate always lower latency or better quality?Is higher bitrate always lower latency or better quality?
Should I expose Sunshine's web interface directly to the Internet?Should I expose Sunshine's web interface directly to the Internet?
Sources
Version history
- 2026-07-15: Phase 5 end-to-end streaming and security measurement workflow published.