Commit Graph

44 Commits

Author SHA1 Message Date
Luke Bermingham
16fb0841c4 Fixing VCam input.
- CreateInputDevice is only called once on a module so it cannot be used to create multiple input devices when we're creating mutliple streamers. Only the default will work since it's the first being made.
- Fixing signalling config loading when it is readonly.

#fyi Matthew.Cotton, David.Hibbitts
#preflight 628dd36faf7a2e956bb09db8

[CL 20361009 by Luke Bermingham in ue5-main branch]
2022-05-25 03:12:06 -04:00
Luke Bermingham
35dacaed3d Fix cirrus emitting ugly error message if config file was readonly.
Move --nosudo onto UE::PixelStreaming::Servers

#fyi Aidan.Possemiers
#preflight 628ccd98fc217779d43656dd

[CL 20346948 by Luke Bermingham in ue5-main branch]
2022-05-24 08:53:11 -04:00
William Belcher
6274dd55dc Fix: Audio not working on iOS
#jira UE-152594
#rb luke.bermingham
#fyi michael.wallace
#preflight none

[CL 20345170 by William Belcher in ue5-main branch]
2022-05-24 04:02:02 -04:00
Luke Bermingham
a7599949b7 Update Samples/PixelStreaming with early work from 5.1. (Multiple authors)
*************
Features
*************
- Added stat in stats panel to show currently used audio/video codec.
- Added audio bitrate in the stats panel.
- Added toggle in the settings panel to force mono audio.
- Added new info in stats panel to indicate input controlling mode.
- Added Linux platform scripts for the Matchmaker/SFU.
- Added npm commands for signalling server. `npm run $config -- $args` which will work across platforms (`$config` might be `start-signalling-server` and args might be `--debug`)

*************
Bugfixes
*************
- Fix matchmaker taking up to 45 seconds to display a valid server for use.
- Fix regression where all browser audio was mono (default now stereo).
- Fix Linux SFU and Signalling Server scripts not grabbing the public IP correctly.
- Fix linux setup scripts not working when being run from a location that has a space in the path.
- Fix SFU run_cloud.bat tries to call non-existent run.bat.
- Fix being unable to type in console of a streamed application.
- Fix docker scripts running only TURN when we needed both TURN and cirrus.
- Fix docker scripts not starting correctly.

*************
Refactors
*************
- Bash scripts have been refactored for readability.

#rb self
#fyi Mattias.Jansson, Aidan.Possemiers
#preflight https://horde.devtools.epicgames.com/job/628c894f5665463c21effaa9

[CL 20345056 by Luke Bermingham in ue5-main branch]
2022-05-24 03:43:51 -04:00
Luke Bermingham
b2148d64f9 Enforce only one streamer at a time being connected to cirrus.js - this has always been the intent anyway it is now enforced in the signalling server.
One meaningful difference is that anyone who has depending on the old behaviour where a new streamer would override an existing one will have to change their setup.
This fixes the problem where the SFU crashes if multiple streamers attempt to connect.

#fyi William.Belcher, Mattias.Jansson
#rb self
#preflight trivial
#jira UE-143407

[CL 19505643 by Luke Bermingham in ue5-main branch]
2022-03-24 20:30:01 -04:00
Luke Bermingham
3ecf2b395d Disable picture in picture mode during streaming.
#rb self
#fyi Mattias.Jansson
#preflight trivial

[CL 19492466 by Luke Bermingham in ue5-main branch]
2022-03-24 02:25:12 -04:00
Luke Bermingham
a050144f1b Remove admin requirement from Windows Pixel Streaming scripts.
Remove choco requirement from Windows Pixel Streaming scripts.
Make node installation folder specific and not pollute system or clash with existing node installations.
Make SFU/Matchmaker Windows scripts have similar installation and run procedure to signalling server scripts.
Make SFU order independent of whether it should start before or after signalling server by making it attempt a reconnect (every 2 seconds) to the signalling server after a disconnect.

#jira UE-146769
#fyi Nick.Pace, William.Belcher, Phillipe.Rebours
#rb self
#preflight 62397417b3653cf6afd5c1e7

[CL 19464364 by Luke Bermingham in ue5-main branch]
2022-03-22 03:47:18 -04:00
William Belcher
1a3d067208 Fix UE application still responding to key press after the tab loses focus
#jira UE-145537
#preflight none
#rb self
#fyi mattias.jansson

[CL 19370933 by William Belcher in ue5-main branch]
2022-03-14 03:32:38 -04:00
axel riffard
faaa2be6ce Update minimum ios version in sample projects
#rb jack.porter
#jira UE-142896
#preflight none

#ROBOMERGE-AUTHOR: axel.riffard
#ROBOMERGE-SOURCE: CL 19032419 in //UE5/Release-5.0/... via CL 19059808
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)

[CL 19066358 by axel riffard in ue5-main branch]
2022-02-21 02:08:16 -05:00
Luke Bermingham
716a28fca4 Fix resolution changing and fix match viewport resolution browser side option.
#rb Aidan.Possemiers
#fyi Mattias.Jansson, William.Belcher
#preflight none

[CL 18992874 by Luke Bermingham in ue5-main branch]
2022-02-15 01:39:18 -05:00
William Belcher
24ba7c4cc9 Merge /UE5/Dev-Tensorworks to /UE5/Main. This includes:
Refactor player sessions
Fix PixelStreamingAudioComponent had delayed audio.
Fix audio bitrate from Unreal Engine to browser was set to a low default causing compressed audio quality in stream. The new default is now Opus maximum value of 510kb/s.
Fix the Selective Forwarding Unit (SFU) not being added to the Pixel Streaming samples folder for a packaged project
Fix default max bitrate not being high enough to support 4k.
Fix reconnections not autoplaying in the browser.
Add datachannel support to SFU.
Add WebRTC c++ client behaviour to pixel streaming system. This is used for developing unit tests.
Add a unit test that will start streaming, connect a client and check that a data channel message can be sent.
Add the ability for a user to start/stop streaming as needed through the use of PixelStreaming.StartStreaming and PixelStreaming.StopStreaming
Add the ability for the stream resolution to be changed at runtime

Notes: AVEncoder no longer stores a width and height; These properties have been moved to the FVideoEncoderInput. This input is now the source of truth and both AMF and NVENC will adapt their resolution to the input resolution.

#rb luke.bermingham
#fyi mattias.jansson, nick.pace, matthew.cotton, aidan.possemiers, sandor.hadas
#preflight 6204c7aba65a8a28464df03c
#jira none

[CL 18948482 by William Belcher in ue5-main branch]
2022-02-10 21:16:24 -05:00
luke bermingham
4f2f510531 Update PixelStreamingAudioComponent for UE5 to experimentally support sending audio data from the browser to the engine.
Currently it is very delayed.

[FYI] Mattias.Jansson
#rb Aidan.Possemiers
#preflight 61f8f82d8b4112f7cc8ed493

#ROBOMERGE-AUTHOR: luke.bermingham
#ROBOMERGE-SOURCE: CL 18806406 in //UE5/Release-5.0/... via CL 18808528 via CL 18821791
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18822158 by luke bermingham in ue5-main branch]
2022-02-02 02:21:36 -05:00
william belcher
be55394a88 Remove the Kick All button from the Pixel Streaming front end. Replace this functionality with a Kick Player blueprint.
#jira none
#preflight 61f7a5f86a7c7b134f34ba36
#rb luke.bermingham
[FYI] mattias.jansson

#ROBOMERGE-AUTHOR: william.belcher
#ROBOMERGE-SOURCE: CL 18803013 in //UE5/Release-5.0/... via CL 18803028 via CL 18821570
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18821651 by william belcher in ue5-main branch]
2022-02-02 01:48:23 -05:00
william belcher
4f72703ae0 Update Pixel Streaming latency report to show warnings if a latency report is requested while WebRTC stats are disabled.
#jira none
#preflight trivial
#rb luke.bermingham
[FYI] mattias.jansson

#ROBOMERGE-AUTHOR: william.belcher
#ROBOMERGE-SOURCE: CL 18787259 in //UE5/Release-5.0/... via CL 18787263 via CL 18787274
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18787276 by william belcher in ue5-main branch]
2022-01-31 02:40:43 -05:00
luke bermingham
4e548355ef Exposed three new settings for the Pixel Streaming JavaScript/settings panel. These can used in the settings panel by clicking the appropriate input toggle before clicking connect or by appending the following to the url:
/?preferSFU which lets the user indicate whether they would like to try to connect to the SFU,
/?ForceTURN which lets the user indicate they will only make a peer connection using a relay candidate (this is useful on Chrome when debugging TURN servers),
/?useMic which lets the user indicate they would like to use their microphone to send audio back into Unreal Engine, which can be then be consumed by a PixelStreamingAudioComponent in the scene.

#rb William.Belcher
[FYI] Mattias.Jansson, Aidan.Possemiers, Matthew.Cotton, Nick.Pace, Michael.Wallace
#preflight trivial

#ROBOMERGE-AUTHOR: luke.bermingham
#ROBOMERGE-SOURCE: CL 18787077 in //UE5/Release-5.0/... via CL 18787080 via CL 18787273
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18787275 by luke bermingham in ue5-main branch]
2022-01-31 02:40:37 -05:00
william belcher
d342c47181 Update Linux to use NodeJS v17 as v10 is outdated and has reached end of life
#jira none
#rb luke.bermingham
#preflight trivial
[FYI] mattias.jansson

#ROBOMERGE-AUTHOR: william.belcher
#ROBOMERGE-SOURCE: CL 18767887 in //UE5/Release-5.0/... via CL 18767888 via CL 18768130
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18768143 by william belcher in ue5-main branch]
2022-01-27 23:15:37 -05:00
william belcher
73eba4e1a8 Add platform specific scripts for launching the reference SFU
#jira none
#rb luke.bermingham
#preflight trivial
[FYI] mattias.jansson

#ROBOMERGE-AUTHOR: william.belcher
#ROBOMERGE-SOURCE: CL 18767209 in //UE5/Release-5.0/... via CL 18767224 via CL 18767475
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18767500 by william belcher in ue5-main branch]
2022-01-27 21:03:48 -05:00
sandor hadas
340aa84aff Add two docker containers (Dockerfile and .dockerignore files) and corresponding scripts to create those docker images, start and stop them. Also, minor script fixes.
#JIRA UE-138171
#rb Luke.Bermingham, Aidan.Possemiers
[FYI] Mattias.Jansson
#preflight trivial

#ROBOMERGE-AUTHOR: sandor.hadas
#ROBOMERGE-SOURCE: CL 18705692 in //UE5/Release-5.0/... via CL 18705717 via CL 18706245
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18706262 by sandor hadas in ue5-main branch]
2022-01-24 02:43:52 -05:00
luke bermingham
be6357d7a2 Rework PixelStreaming stats to use internal WebRTC stats.
- Stats can now be queried.
- Stats can be listened to for changes using IPixelStreamingModule::AddAnyStatChangedCallback.
- Web frontend stats/settings cleaned up to reflect only important settings a user can change.
- Removed latency tester in favour of a stats report.

#jira UE-136118
#rb self
[FYI] Aidan.Possemiers, Nick.Pace, Matthew.Cotton, William.Belcher
#preflight 61d24a8921763c62c97d1378

#ROBOMERGE-AUTHOR: luke.bermingham
#ROBOMERGE-SOURCE: CL 18499770 in //UE5/Release-5.0/... via CL 18499772
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18499773 by luke bermingham in ue5-release-engine-test branch]
2022-01-02 20:27:41 -05:00
luke bermingham
caec606945 Added default simulcast settings if none are specified and removed the implicit design that the presence of simulcast parameters implies the use of simulcast. Simulcast usage is instead triggered by the PSPFlag_IsSFU parameter in new peer connections.
- Fix for low bitrate when no SFU connected.
- Fix for no stream connection (black stream) when streamer connecting and no simulcast parameters specified.

#JIRA UE-137206
#rb self
[FYI] Nick.Pace, Aidan.Possemiers, Matthew.Cotton
#preflight 61ce4791ad69446e59129eda

#ROBOMERGE-AUTHOR: luke.bermingham
#ROBOMERGE-SOURCE: CL 18498100 in //UE5/Release-5.0/... via CL 18498101
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18498102 by luke bermingham in ue5-release-engine-test branch]
2021-12-30 19:20:56 -05:00
william belcher
e5d1227b3a Merging CL18427372 (Enable sending of large files over datachannel) into UE5
#JIRA UE-137207
#rb Luke.Bermingham
[FYI] Mattias.Jansson
#lockdown Mitchell.Wilson
#preflight 61ba8340753a9d8c87c31d53

#ROBOMERGE-AUTHOR: william.belcher
#ROBOMERGE-SOURCE: CL 18481140 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18481162 by william belcher in ue5-release-engine-test branch]
2021-12-16 19:04:53 -05:00
luke bermingham
72fd2e12ba Added superficial comment change to app.js
#rb self
[FYI] Marc.Audy
# jira none

#ROBOMERGE-AUTHOR: luke.bermingham
#ROBOMERGE-SOURCE: CL 18462162 in //UE5/Release-5.0/... via CL 18462249
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18462294 by luke bermingham in ue5-release-engine-test branch]
2021-12-14 18:45:57 -05:00
michael wallace
91ee055e71 Updated TURN server scripts to pull correct IPs
#JIRA UE-137337
#rb Nick.Pace
[FYI] Luke.Bermingham, Marco.Anastasi

#ROBOMERGE-AUTHOR: michael.wallace
#ROBOMERGE-SOURCE: CL 18450950 in //UE5/Release-5.0/... via CL 18450964
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v898-18417669)

[CL 18450971 by michael wallace in ue5-release-engine-test branch]
2021-12-13 20:22:37 -05:00
matthew cotton
18d22044c0 Merging //UE5/Dev-TensorWorks to Release-5.0 (//UE5/Release-5.0)
- adding the ability to connect directly to the streamer even when an sfu is connected. use UseDirect parameter to activate

#jira UE-136649
#rb aidan.possemiers, luke.bermingham, nick.pace
[FYI] Mattias.Jansson

#ROBOMERGE-AUTHOR: matthew.cotton
#ROBOMERGE-SOURCE: CL 18441498 in //UE5/Release-5.0/... via CL 18444774
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18444952 by matthew cotton in ue5-release-engine-test branch]
2021-12-13 13:18:46 -05:00
luke bermingham
5b7cd93fdb Fix for Firefox and TURN on AWS. The shim we were using was broken.
- Improve JS logging with formatting and colouring, removed redundant logs.
- Added url parameter ?ForceTURN because Firefox method of forcing TURN seems problematic and Chrome does not have a method to force TURN.

#JIRA UE-136873
#rb Matthew.Cotton
[FYI] Nick.Pace, Mattias.Jansson, Aidan.Possemiers, Marco.Anastasi

#ROBOMERGE-AUTHOR: luke.bermingham
#ROBOMERGE-SOURCE: CL 18428596 in //UE5/Release-5.0/... via CL 18428600
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18428605 by luke bermingham in ue5-release-engine-test branch]
2021-12-09 23:32:07 -05:00