2023-06-12 14:45:34 +08:00
| Branch | | | | |
| -------|--|--|--|--|
| UE5.3 | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/publish-library-to-npm.yml) | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/publish-ui-library-to-npm.yml) | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/container-images.yml) | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/create-gh-release.yml) |
| UE5.2 | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/publish-library-to-npm.yml) | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/publish-ui-library-to-npm.yml) | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/container-images.yml) | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/create-gh-release.yml) |
| Master | [](https://github.com/EpicGames/PixelStreamingInfrastructure/actions/workflows/run-library-unit-tests.yml) |
2023-02-07 09:44:59 +08:00
# The official home for the Pixel Streaming servers and frontend!
2023-03-24 07:39:26 +08:00
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** .
2022-06-15 10:54:37 +08:00
2022-07-07 08:52:27 +08:00
## Goals
2022-06-15 10:54:37 +08:00
2022-07-07 08:52:27 +08:00
The goals of this repository are to:
2022-07-07 08:55:16 +08:00
- 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.
2023-02-17 16:31:00 +08:00
- Facilitate a more standard web release mechanism.
2022-07-07 08:55:16 +08:00
- Grant a permissive license to distribute and modify this code wherever you see fit (MIT licensed).
2022-07-07 08:52:27 +08:00
2023-03-24 07:39:26 +08:00
## Contents
2022-07-07 08:52:27 +08:00
2023-03-24 07:39:26 +08:00
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 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/` ](SignallingWebServer/ ).
- An SFU (Selective Forwarding Unit), found in [`SFU/` ](SFU/ ).
- A matchmaker, found in [`Matchmaker/` ](Matchmaker/ ).
- Several frontend projects for the WebRTC player and input, found in [`Frontend/` ](Frontend/ ):
- shared libraries for [communication ](Frontend/library/ ) and [UI ](Frontend/ui-library/ ) functionality
- separate [implementations ](Frontend/implementations/ ) using different techologies such as TypeScript or React/JSX
2023-03-24 07:41:38 +08:00
For detailed information, see the [frontend readme ](Frontend/README.md ).
2022-07-07 08:52:27 +08:00
2023-02-22 16:49:11 +08:00
## Releases
We release a number of different things under this repository, currently they are:
2022-11-17 15:13:11 +08:00
2023-02-22 16:49:11 +08:00
- 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
2022-11-17 15:13:11 +08:00
2023-02-22 16:49:11 +08:00
### Container images
2023-02-17 16:31:00 +08:00
2023-02-22 16:49:11 +08:00
The following container images are built from this repository:
2023-06-06 14:49:41 +08:00
- [ghcr.io/epicgames/pixel-streaming-signalling-server ](https://github.com/orgs/EpicGames/packages/container/package/pixel-streaming-signalling-server ) (since Unreal Engine 5.1)
( This link requires you to join Epic's Github org )
2023-02-17 16:31:00 +08:00
2023-02-22 16:49:11 +08:00
### NPM Packages
2023-02-22 16:51:57 +08:00
The following are `unofficial` NPM packages (official ones coming soon):
2023-02-17 16:31:00 +08:00
2023-02-22 16:49:11 +08:00
| Branch | Frontend library | Frontend reference ui |
|--------|------------------|-----------------------|
| UE5.2 |[lib-pixelstreamingfrontend-ue5.2](https://www.npmjs.com/package/@epicgames-ps/lib-pixelstreamingfrontend-ue5.2)|[lib-pixelstreamingfrontend-ui-ue5.2](https://www.npmjs.com/package/@epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.2)|
2023-02-17 16:31:00 +08:00
2023-02-22 16:49:11 +08:00
### NPM getting started
2023-02-17 16:31:00 +08:00
2023-02-22 16:49:11 +08:00
```bash
#frontend (core lib)
npm i @epicgames -ps/lib-pixelstreamingfrontend-ue5.2
#frontend ui
npm i @epicgames -ps/lib-pixelstreamingfrontend-ui-ue5.2
```
2023-02-17 16:31:00 +08:00
2023-06-09 06:56:43 +08:00
## Documentation
* [General Docs ](/Docs/README.md )
* [Frontend Docs ](/Frontend/Docs/README.md )
* Signalling Server Docs [TO DO ](https://github.com/EpicGames/PixelStreamingInfrastructure/issues/255 )
* Matchmaker Docs [TO DO ](https://github.com/EpicGames/PixelStreamingInfrastructure/issues/256 )
* SFU Docs [TO DO ](https://github.com/EpicGames/PixelStreamingInfrastructure/issues/257 )
2023-02-22 16:49:11 +08:00
### Tagged source releases + built typescript frontend
2023-02-17 16:31:00 +08:00
[Github releases ](https://github.com/EpicGames/PixelStreamingInfrastructure/releases )
2022-10-05 07:49:01 +08:00
## Versions
We maintain versions of the servers and frontend that are compatible with existing and in-development version of Unreal Engine.
:warning: **There are breaking changes between UE versions - so make sure you get the right version** . :warning:
2023-02-06 15:45:36 +08:00
< ins > For a list of major changes between versions please refer to the [changelog ](https://github.com/EpicGames/PixelStreamingInfrastructure/blob/master/CHANGELOG.md ).</ ins >
This repository contains the following in branches that track Unreal Engine versions:
2022-10-05 07:49:01 +08:00
2023-02-06 15:57:33 +08:00
| Branch | Status |
|--------|--------|
|[Master](https://github.com/EpicGames/PixelStreamingInfrastructure/tree/master)| Dev |
2023-06-06 15:15:24 +08:00
|[UE5.3](https://github.com/EpicGames/PixelStreamingInfrastructure/tree/UE5.3)| Pre-release |
|[UE5.2](https://github.com/EpicGames/PixelStreamingInfrastructure/tree/UE5.2)| Current |
|[UE5.1](https://github.com/EpicGames/PixelStreamingInfrastructure/tree/UE5.1)| Supported |
|[UE5.0](https://github.com/EpicGames/PixelStreamingInfrastructure/tree/UE5.0)| End of life |
|[UE4.27](https://github.com/EpicGames/PixelStreamingInfrastructure/tree/UE4.27)| Unsupported |
2023-02-06 15:57:33 +08:00
|[UE4.26](https://github.com/EpicGames/PixelStreamingInfrastructure/tree/UE4.26)| Unsupported |
| Legend | Meaning |
|---------|-----------|
2023-02-08 14:37:31 +08:00
| Dev | This is our dev branch, intended to be paired with [ue5-main ](https://github.com/EpicGames/UnrealEngine/tree/ue5-main ) - experimental. |
|Pre-release| Code in here will be paired with the next UE release, we periodically update this branch from `master` . |
2023-02-06 15:57:33 +08:00
| 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 versions with bugfixes. |
2022-07-07 08:52:27 +08:00
## Legal
2023-02-07 09:45:53 +08:00
© 2004-2023, Epic Games, Inc. Unreal and its logo are Epic’ s trademarks or registered trademarks in the US and elsewhere.