Skip to content
This repository has been archived by the owner on Mar 1, 2024. It is now read-only.

New docs #429

Merged
merged 8 commits into from
Nov 21, 2023
Merged

New docs #429

merged 8 commits into from
Nov 21, 2023

Conversation

mcottontensor
Copy link
Contributor

Relevant components:

  • Signalling server
  • Frontend library
  • Frontend UI library
  • Matchmaker
  • Platform scripts
  • SFU

Problem statement:

Missing documentation for several components.

Solution

Added some brief documentation that was missing.

Documentation

Added SignallingWebServer docs. Linked the existing Matchmaker docs. Added SFU docs.

Test Plan and Compatibility

No testing needed.

@mcottontensor
Copy link
Contributor Author

Closes #257
Closes #256
Closes #255

SFU/README.md Outdated
| Name | Type | Default | Description |
|-|-|-|-|
| rtcMinPort | Number | 40000 | Minimun RTC port for ICE, DTLS, RTP, etc. |
| rtcMazPort | Number | 49999 | Maximum RTC port for ICE, DTLS, RTP, etc. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be rtcMaxPort

SFU/README.md Outdated
| Name | Type | Default | Description |
|-|-|-|-|
| signallingURL | String | 'http://localhost:8889' | The URL pointing to the signalling server we want to connect to. |
| SFUId | String | 'SFU' | The streamer name this peer will be given when connecting to the signalling server. Peers wishing to receive from this SFU should subscribe to this ID. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think

The streamer name this peer will be given when connecting to the signalling server. Peers wishing to receive from this SFU should subscribe to this ID.

SFU/README.md Outdated

Launch the streaming app with the following arguments
`-SimulcastParameters="1.0,5000000,20000000,2.0,1000000,5000000,4.0,50000,1000000"`
This tells the pixel streaming plugin to stream simulcast with 3 streams, each one scaling down by 2. The sequence of values is as follows, `scale_down_factor,min_bitrate,max_bitrate,...repeating for each stream`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer:

scaling video resolution by half.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pixel streaming

to

Pixel Streaming

Copy link
Contributor

@lukehb lukehb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor changes requested.

Copy link
Collaborator

@DenisTensorWorks DenisTensorWorks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor style and sentence flow edits.

SFU/README.md Outdated
@@ -0,0 +1,59 @@
# Pixel Streaming Selective Forwarding Unit

The SFU (Selective Forwarding Unit) is a mechanism to allow distributing a single stream out to a large number of peers. This is useful because when peers connect directly to the streamer, resources must be allocated per peer to allow encoding of the stream. This means resources can quickly be drained after only a handful of peers. The SFU can receive multiple streams using simulcast and selectively forward out streams to remote peers based on their available resources, without requiring to actually reencode the stream.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This means resources can quickly be drained

This means the resources can be quickly drained

reencode the stream

re-encode the stream

SFU/README.md Outdated
|-|-|-|-|
| signallingURL | String | 'http://localhost:8889' | The URL pointing to the signalling server we want to connect to. |
| SFUId | String | 'SFU' | The streamer name this peer will be given when connecting to the signalling server. Peers wishing to receive from this SFU should subscribe to this ID. |
| subscribeStreamerId | String | 'DefaultStreamer' | This is the name of the streamer that this SFU should subscribe to and restream. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

subscribe to and restream

subscribe to and re-stream

SFU/README.md Outdated
| SFUId | String | 'SFU' | The streamer name this peer will be given when connecting to the signalling server. Peers wishing to receive from this SFU should subscribe to this ID. |
| subscribeStreamerId | String | 'DefaultStreamer' | This is the name of the streamer that this SFU should subscribe to and restream. |
| retrySubscribeDelaySecs | Number | 10 | If subscribing to the given streamer fails, wait this many seconds before trying again. |
| mediasoup | Object | | Mediasoup related configuration options. See below. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mediasoup related

Mediasoup-related

| retrySubscribeDelaySecs | Number | 10 | If subscribing to the given streamer fails, wait this many seconds before trying again. |
| mediasoup | Object | | Mediasoup related configuration options. See below. |

### Mediasoup related configuration options.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mediasoup related configuration options.

Mediasoup-related configuration options

SFU/README.md Outdated

| Name | Type | Default | Description |
|-|-|-|-|
| worker | Object | | Worker related configuration options. See below. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worker related

Worker-related

@@ -0,0 +1,32 @@
# Pixel Streaming Signalling Server

The signalling server is a small middle-man application that sits between streamers and other peers. It handles the initial connection negotiations and some other small ongoing control messages between peers as well as acting as a simple web server for serving the [Frontend](/Frontend/README.md) web application.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a small middle-man application

a small intermediary application


## Configuration

Configuration of the signalling server is handled via the config.js file in the SignallingWebServer directory. The following are supported options.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following are supported options.

The following are its supported options.

| HomepageFile | String | 'player.html' | The root file of the frontend web application. |
| AdditionalRoutes | Map | | Additional routes for the web application. |
| EnableWebserver | Boolean | true | Enables or disables the serving of the frontend through the internal web server. Disbable this if you are serving your own frontend. |
| MatchmakerAddress | String | | The IP/hostname of the match maker application. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the match maker application

the matchmaker application

| AdditionalRoutes | Map | | Additional routes for the web application. |
| EnableWebserver | Boolean | true | Enables or disables the serving of the frontend through the internal web server. Disbable this if you are serving your own frontend. |
| MatchmakerAddress | String | | The IP/hostname of the match maker application. |
| MatchmakerPort | Number | 9999 | The port the match maker is listening on. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the match maker is listening on

the matchmaker is listening on

| EnableWebserver | Boolean | true | Enables or disables the serving of the frontend through the internal web server. Disbable this if you are serving your own frontend. |
| MatchmakerAddress | String | | The IP/hostname of the match maker application. |
| MatchmakerPort | Number | 9999 | The port the match maker is listening on. |
| PublicIp | String | "localhost" | The public IP/hostname of the host that the signalling server is listening on. This is used by the match maker. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is used by the match maker.

This is used by the matchmaker.

@mcottontensor mcottontensor merged commit e66dacf into EpicGames:master Nov 21, 2023
@mcottontensor mcottontensor deleted the new_docs branch November 21, 2023 00:43
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants