Unreal engine pixel streaming
Back to top

Unreal Engine pixel streaming: what it is and when to use it

Dmytro Lunov

Written by

Dmytro Lunov Verified author

Head of Delivery and Program Director at Game-Ace

Dmytro leads Game-Ace delivery teams on game development, art production, game design, MVP prototyping, and Unity and Unreal Engine projects.

Published October 23, 2022 Updated September 9, 2026

Unreal Engine pixel streaming is an Epic Games plugin that renders a packaged Unreal Engine application on a cloud or on-premise GPU and streams the frames plus audio to any modern web browser over WebRTC. Teams use pixel streaming when the client device cannot run the scene locally, when a large audience needs instant access without a download, or when a single build must reach desktop and mobile browsers with identical visuals. It first shipped with Unreal Engine 4.27 and is supported in Unreal Engine 5.

How Unreal Engine pixel streaming works under the hood

Pixel streaming keeps the Unreal Engine application on a GPU-backed server and sends the rendered frames to the browser as an encoded video track. The server runs the packaged UE app in a windowless mode, captures the swap-chain output, encodes it with NVENC (H.264 or H.265), and pushes it through a signaling server to the connected browser. Input events from mouse, keyboard, touch or gamepad travel back over the same WebRTC data channel and are injected into the running UE process.

The default stack that ships with the plugin includes a Node.js signaling and web server, a Cirrus front-end page, and a matchmaker service when more than one UE instance is running. Larger deployments usually replace Cirrus with a custom front-end and put the signaling server behind a load balancer.

Because the transport is WebRTC, the same connection handles the outbound video, the inbound input, and any custom bidirectional messages the UE application emits or receives. This is what makes pixel streaming useful for interactive configurators and multi-user viewers, not only passive playback.

When pixel streaming is the right choice

Pixel streaming pays off when three conditions align: the scene is too heavy for the client device, the audience is broad and unpredictable, and the studio wants to keep the source build and assets on its own infrastructure. Automotive configurators, real-time architectural walkthroughs, industrial digital twins, product demos, and interactive marketing experiences are the most common production cases. Pixel streaming is a poor fit for latency-critical competitive gameplay, for scenes that already run at 60 fps on target hardware, and for deployments where the browser client base is small enough to justify a native download.

WebRTC transport, signaling and NAT traversal

WebRTC transport is what lets pixel streaming reach a browser without a plugin. The signaling server exchanges SDP offers and answers between the UE instance and the client, and ICE candidates are collected on both sides so the peer connection can be established through the shortest available path.

For public deployments on the open internet, a TURN relay is usually required for the share of users behind symmetric NAT. Coturn is a common self-hosted option, and every hyperscaler has a managed equivalent. Teams underestimate this part often, because internal testing over a corporate LAN masks the NAT problem until launch day. Epic Games documents the full signaling and TURN setup in its official pixel streaming documentation.

Cloud GPU options for Unreal Engine pixel streaming

The choice of GPU instance drives cost and visual quality more than any other decision. NVIDIA T4 handles Unreal Engine 4 scenes and lighter UE5 scenes at 1080p60. NVIDIA A10G and L4 handle heavier UE5 scenes with Lumen enabled at 1080p or 1440p. NVIDIA A100 or H100 is only justified for very heavy scenes or multi-session sharing on one GPU.

  • AWS G4dn (T4): entry tier for UE4 and modest UE5 workloads, widely available across regions.
  • AWS G5 (A10G): stronger choice for UE5 with Lumen and higher output resolutions.
  • GCP N1 with T4 or G2 with L4: comparable price and performance to AWS T4 and A10G tiers.
  • Azure NVv4 (AMD MI25) and NC A100 v4: viable when the studio is already on Azure.
  • Vagon: managed pixel streaming with per-session GPU allocation and built-in autoscaling.
  • Self-hosted workstations with RTX A4000 or A5000: predictable cost for small internal audiences.

Hosting comparison: self-hosted, AWS, GCP, Azure and Vagon

Each hosting path trades control against operational overhead. The table below summarizes the practical tradeoffs Game-Ace tracks when scoping pixel streaming delivery for a client.

Path GPU tier Autoscaling Latency baseline Best fit
Self-hosted (own workstations) RTX A4000 / A5000 Manual 20-40 ms LAN, 60-120 ms WAN Internal review, small teams
AWS EC2 G4dn / G5 T4 / A10G Auto Scaling Groups 70-140 ms same region Mid to large public audiences
GCP N1-T4 / G2-L4 T4 / L4 Managed Instance Groups 70-140 ms same region Studios already on GCP
Azure NVv4 / NC A100 v4 MI25 / A100 VM Scale Sets 80-150 ms same region Enterprise clients on Azure
Vagon Streams T4 / A10G class Built-in per-session 80-150 ms Fast launch without infra work

Latency figures assume a same-region client on a 25 Mbit connection. Cross-region viewers add 40-120 ms on top depending on route quality.

Bandwidth, latency and cost planning

A single 1080p60 pixel streaming session typically consumes 10-20 Mbit downstream to the client. 1440p60 pushes 20-35 Mbit, and 4K60 pushes 35-60 Mbit with H.265. Upstream input traffic from the client is negligible, usually below 100 Kbit.

Cost planning starts from GPU-hour price and expected concurrency. A single AWS G4dn.xlarge runs around 0.50-0.60 USD per hour, a G5.xlarge around 1.00-1.20 USD per hour, and an L4 instance on GCP sits between the two. Multiply by peak concurrent sessions and expected hours per month, then add data transfer at 0.05-0.09 USD per GB egress. AWS documents current instance pricing in its G5 instance reference.

Idle GPU cost is the trap: an instance that stays warm for 8 working hours a day at 1 USD per hour costs about 240 USD per month per session, even if nobody connects. Scale-to-zero policies and session-based allocation, which is what Vagon offers by default, are the common answer for spiky audience patterns.

Browser and mobile support

Any browser with modern WebRTC support can play pixel streaming: Chrome, Edge, Firefox, and Safari on desktop, plus Chrome and Safari on mobile. H.264 remains the safest video codec baseline because iOS Safari has historically been strict about H.265 in WebRTC contexts.

Mobile playback works, but the input model needs planning. Touch input has to be mapped to Unreal input actions, and virtual gamepad overlays are common for interactive experiences that were originally designed for keyboard and mouse. Teams evaluating a broader Unreal Engine developers engagement for this kind of work usually scope the input layer alongside the streaming infrastructure, not after it.

Security, authentication and session control

For public launches, the signaling server should sit behind an authentication layer, and each UE instance should be reachable only through short-lived signed URLs. TURN credentials should rotate per session, and the UE build should be recompiled with logging that separates client input from server-side telemetry.

For enterprise deployments, private VPC or VNet networking removes the internet as an attack surface entirely, and client access runs through the corporate identity provider.

When to talk to Game-Ace about Unreal pixel streaming

Pixel streaming projects depend on more than the Unreal Engine build. Signaling architecture, TURN coverage, GPU capacity, autoscaling, and session costs affect latency, stability, and performance under real traffic.

Game-Ace can support your project from an infrastructure consultation to full-cycle development of the streamed application. As a game development studio with experience in Unreal Engine, we align the production build and cloud infrastructure with your expected audience, performance requirements, and budget.

Questions teams ask about Unreal Engine pixel streaming

A 1080p60 session sits at 10-20 Mbit downstream in most H.264 configurations, and 1440p60 pushes 20-35 Mbit. Scenes with lots of motion, particles or complex lighting sit at the top of the range. Encoder settings, target bitrate, and adaptive bitrate policies all move the number, so the correct answer for a specific project comes from a load test on the production GPU instance.

Same-region viewers on a 25 Mbit connection see 70-140 ms glass-to-glass on AWS G4dn or G5, and self-hosted LAN deployments can drop under 40 ms. Cross-region viewers add 40-120 ms depending on the route. For interactive configurators and demos this is fine. For fast reflex-based gameplay it is not, and native delivery remains the better path.

Cost is dominated by GPU-hour price and concurrency. AWS G4dn.xlarge is roughly 0.50-0.60 USD per hour, G5.xlarge is 1.00-1.20 USD per hour, and GCP L4 sits between the two. Add 0.05-0.09 USD per GB egress. A public campaign with 200 concurrent 1080p sessions for 10 hours a day usually lands between 3,000 and 8,000 USD per month at list prices, before reserved or spot discounts.

Chrome, Edge, Firefox and Safari on desktop, plus Chrome and Safari on iOS and Android, all handle a standard H.264 WebRTC stream. H.265 support is uneven, especially on iOS Safari, so H.264 is the safe default. Very old browsers without WebRTC 1.0 support are out of scope and typically represent under 1 percent of real traffic.

Yes, video playback is stable on modern iOS and Android devices. The harder part is the input model. Touch and virtual gamepad overlays have to be mapped explicitly to Unreal input actions, and the UI needs a mobile-safe layout. Battery drain during long sessions is also worth measuring, because the decoder stays busy the whole time.

A production stack usually runs a signaling and matchmaker layer, an autoscaling pool of GPU instances behind it, a TURN relay for NAT-blocked clients, and a monitoring layer that tracks session health. On AWS this is EC2 Auto Scaling Groups plus an Application Load Balancer. On GCP this is Managed Instance Groups. Vagon Streams provides a managed equivalent when a studio prefers not to run the pool directly.

WebRTC is the only transport that ships with a return channel for input and low enough latency for interactive control. HLS and MPEG-DASH are optimized for one-way video with buffer windows of several seconds, which is fine for streaming a match but useless for controlling a live Unreal Engine scene.

The signaling server sits behind an authentication layer, session URLs are short-lived and signed, TURN credentials rotate per session, and the UE instance is not reachable directly. For enterprise deployments, private VPC or VNet networking removes public internet exposure and identity checks run through the corporate identity provider. Logging separates client input from server telemetry so abuse patterns are visible.
Average rating 4.9 / 5. Votes: 303
Related posts
Unreal engine 5.6. preview Unreal Engine 5.6 cinematics: a production guide Endless runner character running through a futuristic orange-lit tunnel How to build an endless runner game in Unreal Engine The best game engines preview image Best game engines: a working shortlist Unity vs unreal preview image Unity vs Unreal: picking the right engine for your game Unreal engine 4 vs 5 preview Unreal Engine 4 vs 5: evolution in game development
Futuristic game robot running through a purple portal
Get in touch
menu
Get in touch
Game-Ace logo loader