You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
************* 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]
189 lines
6.9 KiB
HTML
189 lines
6.9 KiB
HTML
<!-- Copyright Epic Games, Inc. All Rights Reserved. -->
|
|
<!DOCTYPE HTML>
|
|
<html>
|
|
|
|
<head>
|
|
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon">
|
|
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon-96x96.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
|
|
<link type="text/css" rel="stylesheet" href="player.css">
|
|
<script type="text/javascript">
|
|
// This horrible hack is to make Fippo's adapter-latest.js work with Firefox when not on https
|
|
// because FF does not let you access navigator.mediaDevices when on http.
|
|
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
|
|
if (isFirefox) {
|
|
window.navigator.mozGetUserMedia = function () { };
|
|
if (window.navigator.mediaDevices === undefined) {
|
|
navigator.mediaDevices = {};
|
|
navigator.mediaDevices.getSupportedConstraints = function () { return {}; };
|
|
navigator.mediaDevices.getUserMedia = function () { return {}; };
|
|
}
|
|
}
|
|
</script>
|
|
<script type="text/javascript" src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
|
|
<script type="text/javascript" src="scripts/webRtcPlayer.js"></script>
|
|
<script type="text/javascript" src="scripts/app.js"></script>
|
|
</head>
|
|
|
|
<body onload="load()">
|
|
<div id="playerUI">
|
|
<div id="player"></div>
|
|
<div id="overlay" class="overlay text-light bg-dark">
|
|
<div id="overlayHeader">
|
|
<div id="qualityStatus" class="greyStatus">●</div>
|
|
<div id="overlayButton">+</div>
|
|
</div>
|
|
<div id="overlaySettings">
|
|
<div id="fillWindow" class="setting">
|
|
<div class="settings-text">Enlarge display to fill window</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="enlarge-display-to-fill-window-tgl" class="tgl tgl-flat" checked>
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="qualityControlOwnership" class="setting">
|
|
<div class="settings-text">Is quality controller?</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="quality-control-ownership-tgl" class="tgl tgl-flat">
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="matchViewportResolution" class="setting">
|
|
<div class="settings-text">Match viewport resolution</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="match-viewport-res-tgl" class="tgl tgl-flat">
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="preferSFU" class="setting">
|
|
<div class="settings-text">Prefer SFU</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="prefer-sfu-tgl" class="tgl tgl-flat">
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="useMic" class="setting">
|
|
<div class="settings-text">Use microphone</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="use-mic-tgl" class="tgl tgl-flat">
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="forceMonoAudio" class="setting">
|
|
<div class="settings-text">Force mono audio</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="force-mono-tgl" class="tgl tgl-flat">
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="forceTURN" class="setting">
|
|
<div class="settings-text">Force TURN</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="force-turn-tgl" class="tgl tgl-flat">
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="showFPS" class="setting">
|
|
<div class="settings-text">Show FPS</div>
|
|
<label class="btn-overlay">
|
|
<input type="button" id="show-fps-button" class="overlay-button btn-flat" value="Toggle">
|
|
</label>
|
|
</div>
|
|
|
|
<section id="encoderSettings">
|
|
<div id="encoderSettingsHeader" class="settings-text">
|
|
<div>Encoder Settings</div>
|
|
</div>
|
|
<div id="encoderParamsContainer" class="collapse">
|
|
<div class="form-group">
|
|
<label for="encoder-min-qp-text">Min QP</label>
|
|
<input type="number" class="form-control" id="encoder-min-qp-text" value="0" min="0"
|
|
max="51" />
|
|
<label for="encoder-max-qp-text">Max QP</label>
|
|
<input type="number" class="form-control" id="encoder-max-qp-text" value="51" min="0"
|
|
max="51" />
|
|
<br>
|
|
<input id="encoder-params-submit" class="overlay-button btn-flat" type="button"
|
|
value="Apply">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="webRTCSettings">
|
|
<div id="webRTCSettingsHeader" class="settings-text">
|
|
<div>WebRTC Settings</div>
|
|
</div>
|
|
<div id="webrtcParamsContainer" class="collapse">
|
|
<div class="form-group">
|
|
<label for="webrtc-fps-text">FPS</label>
|
|
<input type="number" class="form-control" id="webrtc-fps-text" value="60" min="1"
|
|
max="999" />
|
|
<label for="webrtc-min-bitrate-text">Min bitrate (kbps)</label>
|
|
<input type="number" class="form-control" id="webrtc-min-bitrate-text" value="0" min="0"
|
|
max="100000" />
|
|
<label for="webrtc-max-bitrate-text">Max bitrate (kbps)</label>
|
|
<input type="number" class="form-control" id="webrtc-max-bitrate-text" value="0" min="0"
|
|
max="100000" />
|
|
<br>
|
|
<input id="webrtc-params-submit" class="overlay-button btn-flat" type="button"
|
|
value="Apply">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="streamSettings">
|
|
<div id="streamSettingsHeader" class="settings-text">
|
|
<div>Stream Settings</div>
|
|
</div>
|
|
<div id="streamSettingsContainer" class="collapse">
|
|
<div class="form-group">
|
|
<div class="settings-text">Player stream</div>
|
|
<select class="form-control" id="stream-select"></select>
|
|
<div class="settings-text">Player track</div>
|
|
<select class="form-control" id="track-select"></select>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<br>
|
|
|
|
<section id="statsPanel">
|
|
<div class="setting settings-text">
|
|
<div>Show Stats</div>
|
|
<label class="tgl-switch">
|
|
<input type="checkbox" id="show-stats-tgl" class="tgl tgl-flat" checked>
|
|
<div class="tgl-slider"></div>
|
|
</label>
|
|
</div>
|
|
<div id="statsContainer" class="statsContainer">
|
|
<div id="stats" class="stats"></div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="latencyTest">
|
|
<div class="setting settings-text">
|
|
<div>Latency Report</div>
|
|
<label class="btn-overlay">
|
|
<input type="button" id="test-latency-button" class="overlay-button btn-flat"
|
|
value="Get Report">
|
|
</label>
|
|
</div>
|
|
<div id="latencyStatsContainer" class="statsContainer">
|
|
<div id=LatencyStats class="stats">No report yet...</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="setting">
|
|
<div class="settings-text"></div>
|
|
<label class="btn-overlay">
|
|
<input type="button" id="restart-stream-button" class="overlay-button btn-flat" value="Restart stream">
|
|
</label>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
</html> |