UE像素流送

UE像素流送
版本:UE4.27

1 单服务器

(1)启用像素流插件;

在这里插入图片描述

(2)工程打包;

(3)配置快捷方式启动参数;

音频混合
像素流IP、端口
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
在这里插入图片描述

(4)管理员身份打开PowerShell并运行

cd
SignallingWebServer\platform_scripts\cmd\setup.ps1
在这里插入图片描述

(5)开启信令服务器

运行SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1
在这里插入图片描述

(6)快捷方式启动虚幻引擎应用程序

提示:
在这里插入图片描述

说明虚幻引擎应用程序已经启用了像素流送插件,前端信令和Web服务器也已准备好将客户端连接到虚幻引擎应用程序。

2 多服务器

参考: https://docs.unrealengine.com/4.27/zh-CN/SharingAndReleasing/PixelStreaming/Hosting/
配置:配对服务器、信令服务器、UE应用、浏览器

(1)配对服务器

定位
工程打包路径/WindowsNoEditor\Samples\PixelStreaming\WebServers\Matchmaker
命令
run.bat --HttpPort 90 --MatchmakerPort 9999
注意:参数大小写
在这里插入图片描述

(2)信令服务器

工程打包路径\WindowsNoEditor\Samples\PixelStreaming\WebServers\SignallingWebServer\config.json
在这里插入图片描述

公网配置:
公网IP
Stun服务器IP
Trun服务器IP
工程打包路径\WindowsNoEditor\Samples\PixelStreaming\WebServers\SignallingWebServer2\platform_scripts\cmd\Start_Common.ps1
在这里插入图片描述

连接项
不使用默认值
Stun服务器端口
Turn服务器端口
用户名/密码配置:
在这里插入图片描述

启动服务器:
打开PowerShell:
在这里插入图片描述

定位:
工程打包路径\WindowsNoEditor\Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd
直接拖Start_WithTURN_SignallingServer.ps1文件入命令窗口,回车
在这里插入图片描述
在这里插入图片描述

(3)UE应用

新建UE应用程序快捷方式,设置属性:
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8886
启动
在这里插入图片描述
在这里插入图片描述

(4)浏览器

输入网址:
10.0.12.33:90
在这里插入图片描述
在这里插入图片描述

(5)信令服务器2

拷贝SignallingWebServer文件夹,粘贴重命名SignallingWebServer2
在这里插入图片描述

工程打包路径\WindowsNoEditor\Samples\PixelStreaming\WebServers\SignallingWebServer2\config.json
在这里插入图片描述

公网配置:
工程打包路径\WindowsNoEditor\Samples\PixelStreaming\WebServers\SignallingWebServer2\platform_scripts\cmd\Start_Common.ps1
在这里插入图片描述

连接项用户名/密码配置:
在这里插入图片描述

启动服务器:
打开PowerShell:
在这里插入图片描述

定位:
工程打包路径\WindowsNoEditor\Samples\PixelStreaming\WebServers\SignallingWebServer2\platform_scripts\cmd
直接拖Start_WithTURN_SignallingServer.ps1文件入命令窗口,回车
在这里插入图片描述

(6)UE应用2

新建UE应用程序快捷方式,设置属性:
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8887
在这里插入图片描述

启动
在这里插入图片描述

(7)浏览器2

输入网址:
10.0.12.33:90
外网端口未开放可测试10.0.12.33:19305

(8)外网
开放端口:90、19304、19305

3 交互通信

参考:https://docs.unrealengine.com/4.27/zh-CN/SharingAndReleasing/PixelStreaming/CustomPlayer/
参考:https://blog.csdn.net/o0pk2008/article/details/102589585

(1)JS --> UE

emitCommand	(测试未成功)
emitUIInteraction 	(测试成功)

(2)UE --> JS

UE
	像素流送组件::Send Pixel Streaming Response(FString)
JS
	app.js
	注册监听器函数
		addResponseEventListener("handle_responses", myHandleResponseFunction); 
	移除事件监听器
		removeResponseEventListener("handle_responses");

4 传参

参考:https://www.jianshu.com/p/90f1f67fc7a8

(1)Matchmaker获取URL地址中的“自定义”参数

Samples\PixelStreaming\WebServers\Matchmaker\matchmaker.js
在这里插入图片描述
修改
在这里插入图片描述

(2)自定义HTML文件获取自定义参数

标签中增加截取url中自定义参数的代码
  //获取URL地址中的自定义参数
	function GetQueryString(name) {
		var reg = new RegExp("(^|&)" + name +"=([^&]*)(&|$)""i");
		var r = window.location.search.substr(1).match(reg);
		var context = "";
		if (r != null)
			context = decodeURIComponent(r[2]);
		reg = null;
		r = null;
		return context == null || context == "" || context == "undefined" ? "" : context;
	}

5 问题

(1)直接外网地址访问

易出现:Client断开不及时
在这里插入图片描述

(2)内网访问

易出现:Cirrus服务不足
在这里插入图片描述

6 无窗口启动

(1)新建bat文件 Start_ps1_NoWindow.bat

REM 启动 SignallingWebServer2
start powershell -windowstyle hidden -File ./Samples/PixelStreaming/WebServers/SignallingWebServer2/platform_scripts/cmd/Start_SignallingServer.ps1
REM 启动 SignallingWebServer
start powershell -windowstyle hidden -File ./Samples/PixelStreaming/WebServers/SignallingWebServer/platform_scripts/cmd/Start_SignallingServer.ps1

(2)新建bat文件 Start_ExeAndRun.bat

Start 工程名.exe -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -AllowPixelStreamingCommands -RenderOffscreen
Start 工程名.exe -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8889 -AllowPixelStreamingCommands -RenderOffscreen
“.\Samples\PixelStreaming\WebServers\Matchmaker\run.bat”

exit

(3)新建bat文件 Start_All_NoWindow.bat

REM 启动前先清理
taskkill /f /im 工程名-Win64-Shipping.exe
Start Start_ps1_NoWindow.bat
Start Start_ExeAndRun.bat

6.1 专用服务器启动

(1)要求:

	避免重复启动
	避免带窗口启动
	指定需要的参数

(2)新建bat文件 Start_Server_WithoutWindow.bat

@echo off
REM 防止重复启动
tasklist | findstr “工程名Server” >nul 2>&1
if errorlevel 1 (
start /b powershell -WindowStyle Hidden -Command “Start-Process ‘%~dp0\GS_QinZhou_VR\Binaries\Win64\工程名Server-Win64-Shipping.exe’ -ArgumentList ‘-server -log -port=23001’ -WindowStyle Hidden -Verb RunAs -PassThru”
) else (
echo Running
)
exit

REM " -WindowStyle Hidden" 无窗口模式启动
REM " %~dp0" 批处理文件所在的目录;
REM " -ArgumentList ‘-server -log -port=23001’ “传递参数;
REM " -Verb RunAs -PassThru” 管理员方式启动;

(3)注意事项

bat启动无反应:可能是杀毒软件拦截;
处理:关闭杀毒软件的免打扰模式(拦截弹窗),再次启动bat,加入信任列表;
或者直接关闭杀毒软件。

  • 28
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值