- 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]
*************
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]
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]
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]
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]
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]
/?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]
- 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]
- 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]
- 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]
- 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]