You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
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]
182 lines
6.7 KiB
HTML
182 lines
6.7 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="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> |