GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - EpicGames/PixelStreamingInfrastructure: The official Pixel Streaming servers and frontend.

BranchesTags
Open more actions menu

Latest commit

 

History

2,506 Commits
2,506 Commits

Folders and files

NameName
Last commit message
Last commit date
.changeset
.changeset
 
 
.github
.github
 
 
Common
Common
 
 
Docs
Docs
 
 
Extras
Extras
 
 
Frontend
Frontend
 
 
Matchmaker
Matchmaker
 
 
SFU
SFU
 
 
Signalling
Signalling
 
 
SignallingWebServer
SignallingWebServer
 
 
.backportrc.json
.backportrc.json
 
 
.dockerignore
.dockerignore
 
 
.gitignore
.gitignore
 
 
.lintstagedrc.mjs
.lintstagedrc.mjs
 
 
.prettierrc.json
.prettierrc.json
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CLAUDE.md
CLAUDE.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
DEVELOPING.md
DEVELOPING.md
 
 
LICENSE.md
LICENSE.md
 
 
NODE_VERSION
NODE_VERSION
 
 
README.md
README.md
 
 
RELEASE_BRANCHING.md
RELEASE_BRANCHING.md
 
 
RELEASE_VERSION
RELEASE_VERSION
 
 
RELEASING.md
RELEASING.md
 
 
SECURITY.md
SECURITY.md
 
 
eslint.config.mjs
eslint.config.mjs
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 

Repository files navigation

Experimental Pixel Streaming 2 plugin release in 5.5

From UE 5.5 onwards, Epic Games introduced a layer that makes it easier to maintain WebRTC internally. As the original Pixel Streaming plugin used WebRTC directly, this change meant that we had to introduce a new plugin to ensure a better transition phase for the developers who have developed custom solutions on top of the PixelStreaming plugin. For now, both the original Pixel Streaming plugin and the Pixel Streaming 2 plugin will be shipped with Unreal Engine to give users time to migrate.

We have created a migration guide to ensure a smooth transition for all licensees using the plugin and to highlight all major changes between the plugins.

Repository health checks and actions

Health Checks UE5.8 UE5.7 UE5.6
Libraries Publish NPM libraries Publish NPM libraries Publish NPM libraries
Platform Scripts Publish container images Publish container images Publish container images
Signalling Protocol Releases Releases Releases
Signalling Server Image
SFU Docker Image
Documentation Links

The official home for the Pixel Streaming servers and frontend!

The frontend and web server elements for Unreal Pixel Streaming (previously located in Samples/PixelStreaming/WebServers) are now in this repository, for all to contribute to. They are referred to as the Pixel Streaming Infrastructure.

Getting Started

To build and run everything you need to connect to the Pixel Streaming plugin simply run the following in the root of your PixelStreamingInfrastructure directory:

Windows

.\SignallingWebServer\platform_scripts\cmd\start.bat

Linux or Mac

./SignallingWebServer/platform_scripts/bash/start.sh

If you want to work on a specific library within this monorepo then cd into that directory and run:

npm install npm run build

If you want to install all the dependencies and flush any existing node_modules, go to the root of the repo and run:

npm install

This works because this monorepo is using NPM workspaces. Using NPM workspaces means:

  • Each sub-workspace within the monorepo does not have its own package-lock.json. There is only a single one in the root.
  • Common dependencies are hoisted into the root node_modules directory.
  • Some sub-workspaces will not have a node_modules directory because all their dependencies exist in the root node_modules.
  • When working locally within the monorepo dependencies on sub-workspaces will first try to use a local symlink to those dependencies instead of downloading the published packages from NPM. For example, pixelstreaming-frontend depends on pixelstreaming-common, when working in this repo that dependency will first be attempted to be resolved using the local ./Common directory.

Goals

The goals of this repository are to:

  • Increase the release cadence for the Pixel Streaming servers (to mitigate browser breaking changes sooner).
  • Encourage easier contribution of these components by Unreal Engine licensees.
  • Facilitate a more standard web release mechanism.
  • Grant a permissive license to distribute and modify this code wherever you see fit (MIT licensed).

Contributing

If you would like to contribute to our repository, please reference our contribution guide. Thank you for your time and your efforts!

Contents

The Pixel Streaming Infrastructure contains reference implementations for all the components needed to run a pixel streaming application. They are structured as separate projects, which work together, but are designed to be modular and interoperable with other implementations which use WebRTC technology. These implementations include:

  • A signalling web server, called Cirrus, found in SignallingWebServer/.
  • An SFU (Selective Forwarding Unit), found in SFU/.
  • A common library for frontend applications, found in Common/.
  • Several frontend projects for the WebRTC player and input, found in Frontend/:
    • shared libraries for communication and UI functionality
    • separate implementations using different techologies such as TypeScript or React/JSX
    • For detailed information, see the /frontend.
  • A signalling protocol test application that validates implementations of the signalling protocol, found in Extras/SS_Test/.

Releases

We release a number of different components under this repository, specifically:

  • Container images for the signalling server
  • NPM packages for the frontend
  • Source releases of this repo with the reference frontend built as a minified js bundle

Container images

The following container images are built from this repository:

  • [Unofficial] pixel-streaming-signalling-server
  • [Unofficial] pixel-streaming-sfu

NPM Packages

The following are unofficial NPM packages (official ones coming soon):

NPM Package 5.8 5.7 5.6
Frontend lib lib-pixelstreamingfrontend-ue5.8 lib-pixelstreamingfrontend-ue5.7 lib-pixelstreamingfrontend-ue5.6
Frontend-ui lib lib-pixelstreamingfrontend-ui-ue5.8 lib-pixelstreamingfrontend-ui-ue5.7 lib-pixelstreamingfrontend-ui-ue5.6
Signalling lib lib-pixelstreamingsignalling-ue5.8 lib-pixelstreamingsignalling-ue5.7 lib-pixelstreamingsignalling-ue5.6
Common lib lib-pixelstreamingcommon-ue5.8 lib-pixelstreamingcommon-ue5.7 lib-pixelstreamingcommon-ue5.6

NPM getting started

#frontend (core lib)
npm i @epicgames-ps/lib-pixelstreamingfrontend-ue5.8
#frontend ui
npm i @epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.8

Documentation

  • General Docs
  • Frontend Docs
  • Signalling Server Docs
  • SFU Docs

Tagged source releases + built typescript frontend

Github releases

Versions

We maintain versions of the servers and frontend that are compatible with existing and in-development version of Unreal Engine.

⚠️ There are breaking changes between UE versions - so make sure you get the right version. ⚠️

For a list of major changes between versions please refer to the changelog.

This repository contains the following in branches that track Unreal Engine versions:

Branch Status
Master Dev
UE5.8 Current
UE5.7 Supported
UE5.6 End of life
UE5.5 Unsupported
Legend Meaning
Dev This is our dev branch, intended to be paired with ue5-main - experimental.
Pre-release Code in here will be paired with the next UE release, we periodically update this branch from master.
Current Supported and this is the branch tracking the latest released version of UE.
Supported We will accept bugfixes/issues for this version.
End of life Once the next UE version is released we will not support this version anymore.
Unsupported We will not be supporting this version with bugfixes.

Legal

Copyright Epic Games, Inc. Unreal and its logo are Epic’s trademarks or registered trademarks in the US and elsewhere.

About

The official Pixel Streaming servers and frontend.

Resources

Readme
MIT license

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

560 stars

Watchers

10 watching

Forks

232 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.