Pixel Streaming Infrastructure

The Pixel Streaming servers and web frontend are now externally hosted on GitHub, consisting of the Signalling Server, Matchmaker and SFU. This is often referred to as the "Pixel Streaming Infrastructure"

The Pixel Streaming Infrastructure contains the servers and frontend components of the Pixel Streaming plugin. It contains the scripts needed to run Pixel Streaming (the Signalling Server, Matchmaker and SFU) and is designed to be both easy to access and modify. Previously, these scripts were found in the Samples/PixelStreaming directory of your project and engine. If you want to continue using Pixel Streaming moving forward, it's recommended to use the new infrastructure as all the latest front end updates to Pixel Streaming will be made there.

Why?

We moved the Pixel Streaming front end to its own repository for a number of reasons:

  1. To improve the release cadence of Pixel Streaming. With the infrastructure existing in its own repository, it is not bound to updates to Unreal Engine.

  2. Encourage and allow easier contribution from Unreal Engine licensees and users.

Acquiring the Infrastructure

There are 3 different ways to acquire the Pixel Streaming infrastructure. The methods below are the most commonly used and should cover most use cases.

Download the Zip

You can directly download the infrastructure in zip format by heading to: https://github.com/EpicGames/PixelStreamingInfrastructure. Navigate to the branch of the infrastructure you need (e.g. 4.27 or 5.0) and press the green code button. You should see the option to download ZIP.

Use Git Command

If you have Git installed locally, you can acquire the infrastructure via command line, for example:

git clone --branch UE5.1 https://github.com/EpicGames/PixelStreamingInfrastructure.git in your preferred terminal (make sure you have git installed).

The git command mentioned above will pull the 5.1 branch of the infrastructure. If you need a different branch, please modify the git command accordingly.

Use the Provided Scripts

With the Pixel Streaming plugin enabled, you will find scripts to automatically pull the required branch of the infrastructure.

Navigate to \Engine\Plugins\Media\PixelStreaming\Resources\WebServers and run the get_ps_servers command (make sure to use the .bat script for Windows and .sh script for Linux accordingly). This will automatically pull the relevant branch of the Pixel Streaming infrastructure into that folder.

This method is recommended because the downloaded infrastructure will be automatically packaged with your Pixel Streaming enabled project. If you don't use this method, you can still ensure the infrastructure packages with your project by manually placing the infrastructure in the above location.

Infrastructure Layout

After pulling the infrastructure through one of the methods above, you'll end up with a local file setup as shown below. You can browse the infrastructure directly on GitHub as well.

PSInfraLocal.JPG

The Pixel Streaming component locations are as follows:

  1. Matchmaker: This file contains all the scripts required to configure and run the Matchmaker.

    MatchmakerLocal.JPG

  2. SFU: This file contains everything needed to configure and run the Selective Forwarding Unit.

    SFULocal.JPG

  3. SignallingWebServer: This is the location for your mandatory Pixel Streaming elements, such as the Signalling Server, Web Server and front end.

    SSLocal.JPG

The platform_scripts directory is the go to location for all the scripts used to start each Pixel Streaming element. You will find scripts for Windows and Linux in cmd and bash respectively.

For information about using the Matchmaker and the Selective Forwarding Unit, refer to the Hosting and Networking Guide

For help setting up a basic Pixel Stream, refer to Getting Started with Pixel Streaming

Engine Versions

There are different branches of the Pixel Streaming Infrastructure for each different version of the engine. As the Pixel Streaming plugin has variances between each version of the engine, it's vital that you use the compatible version of the Pixel Streaming infrastructure. The available versions of the Pixel Streaming infrastructure are: 4.26, .4.27. 5.0 and 5.1. There is also a master branch available that is used for our active development. This will have the latest features, but is also experimental and is not guaranteed to be stable.

Older versions of the Pixel Streaming infrastructure (e.g. 4.26 and 4.27) are not receiving new updates/features. However we do plan to maintain them and push bug fixes as required.