Tutorial — Pixel Streaming 2
Augmented Traveler local tutorial. Back to Unreal — Tutorials · build first: Tutorial — Packaging Builds for Each Surface
How to run a figure on a GPU server and stream it to a web browser, whether on a phone, a school Chromebook or a museum tablet, with Pixel Streaming 2. The visitor sees the full-quality (Cine) character without installing anything.
Draft. The launch argument names may differ between Pixel Streaming and Pixel Streaming 2. Confirm them in Epic's migration guide on the first test.
1. When to use it
| Good for | Not good for |
|---|---|
| School and classroom access (web link, no install) | Crowds of simultaneous users (one GPU instance per active visitor, so cost grows with users) |
| Showing the Cine character on weak devices | Poor connections (it needs a stable, low-latency link) |
| Remote demos to partners and funders | Offline venues |
2. The parts
Unreal app (packaged, Pixel Streaming 2 plug-in)
⇅ WebRTC video/audio/input
Signalling web server "Wilbur" (+ optional SFU) — from Epic's PixelStreamingInfrastructure repo
⇅
Browser frontend (TypeScript library; our own caption/ask UI)
- Pixel Streaming 2 was introduced in 5.5. In 5.8 the original plug-in still ships alongside it, for migration. We use Pixel Streaming 2 only.
- Infrastructure lives at
github.com/EpicGamesExt/PixelStreamingInfrastructure, with one branch per engine version. Use the UE5.8 branch.
3. Local test (one machine)
- Turn on the Pixel Streaming 2 plug-in in the project. Package a Development Win64 build.
- Clone the infrastructure repo at the UE5.8 branch. In
SignallingWebServer/platform_scripts/cmd/, runsetup.batonce, thenstart_with_stun.bat. - Launch the app with the streamer URL, for example
-PixelStreamingURL=ws://127.0.0.1:8888 -RenderOffScreen. Check the argument name for Pixel Streaming 2. - Open
http://127.0.0.1in a browser. Click to start, then test the microphone and the push-to-talk button. - Defaults to know:
- streamer port 8888, player port 80;
- bitrate cap 40 Mb/s;
- "stream sharing" was removed; use the SFU for one-to-many.
4. Our frontend
- Use Epic's TypeScript frontend library and add our UI: captions, an "Ask" button, a "Pause", and a credit line on the label.
- Microphone: browsers require HTTPS and a user click before opening the mic. Plan the prompt wording with the accessibility designer.
- Schools: the classroom endpoint and allowlist are owned by the DevOps engineer (Position — DevOps Engineer).
5. Hosting options
| Option | Notes | Link |
|---|---|---|
| Our own cloud VMs (AWS, Azure, GCP) with GPUs | Most control. The TensorWorks cloud guide covers set-up | https://github.com/TensorWorks/PixelStreamingCloudGuide |
| Azure reference architecture | Microsoft's pattern for Unreal Pixel Streaming | https://learn.microsoft.com/sv-se/gaming/azure/reference-architectures/unreal-pixel-streaming-in-azure |
| Managed platform (e.g. Arcware) | Fastest to run; per-minute pricing; less control | https://www.arcware.com/cloud |
| Epic's hosting and networking guide | STUN/TURN, ports, scaling | https://dev.epicgames.com/documentation/en-us/unreal-engine/hosting-and-networking-guide-for-pixel-streaming-in-unreal-engine |
Budget note: streaming is paid per GPU-hour. Keep a session limit (for example 10 minutes) and an idle timeout. Put the hosting cost into the next budget revision once a pilot sets real numbers.
6. Check before a public link
Sources
- Epic, Pixel Streaming 2 overview: https://dev.epicgames.com/documentation/unreal-engine/pixel-streaming-2-overview-in-unreal-engine?lang=en-US
- Epic, Getting started with Pixel Streaming: https://dev.epicgames.com/documentation/en-us/unreal-engine/getting-started-with-pixel-streaming-in-unreal-engine
- Epic, Pixel Streaming 2 migration guide: https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/master/Docs/pixel-streaming-2-migration-guide.md
- Epic, PixelStreamingInfrastructure repo: https://github.com/EpicGamesExt/PixelStreamingInfrastructure
- Epic, Signalling server README: https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/master/SignallingWebServer/README.md
- Epic, Hosting and networking guide: https://dev.epicgames.com/documentation/en-us/unreal-engine/hosting-and-networking-guide-for-pixel-streaming-in-unreal-engine
- Epic, UE 5.8 release notes (UE Remote uses Pixel Streaming 2): https://dev.epicgames.com/documentation/unreal-engine/unreal-engine-5-8-release-notes?lang=en-US
- Full list: Sources — 2026-09-19