B站教学链接:https://space.bilibili.com/449549424?spm_id_from=333.1007.0.0
一、前言
虚幻引擎像素流送(Pixel Streaming)允许你从任何有屏幕的联网设备(例如计算机,手机,平板电脑等)播放虚幻项目。在这个教程里,我们将学习如何激活虚幻引擎的像素流送并从任何Web浏览器控制PC游戏。
二、局域网单例部署
2.1 局域网单实例构架图 信令服务器帮助用户浏览器与UE4 Pixel Streaming插件之间建立直接的像素流通讯服务,在同一个局域网内,UE4程序和用户浏览器可以直连通讯,只需运行UE4程序和SignallingWebServer信令服务器两个程序,整个推流部署就完成了。
首先找到UE4自带的信令服务器所在的位置:我这里是D盘,找到你们自己所在UE对应的位置
注意:为了防止破坏源代码,大家可以复制挣个文件夹到其他位置进行操作
然后运行setup.ps1,以管理员身份打开PowerShell并运行,这会安装所有需要的依赖环境
然后运行SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1
开启信令服务器。首次运行服务器时其将下载需要的所有依赖性。服务器启动,能够接收连接后,控制台窗口中将出现以下命令行:
安装成功后会出现以下提示:
"PublicIp": "localhost",
"HttpPort": 80,
"HttpsPort": 443,
"StreamerPort": 8888,
"peerConnectionOptions": "{ \"iceServers\": [{\"urls\": [\"stun:stun.l.google.com:19302\"]}] }",
"publicIp": "127.0.0.1"
最后以管理员运行run_local.bat
运行成功之后会出现:
2.2 UE的部署
新建一个第三人称模板
在项目偏好设置里面,找到“播放”,添加命令-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888,注意这里的端口号是上面运行成功显示的端口 "StreamerPort": 8888,
然后打包,打包成功后,找到打包文件,按住Alt拖动复制一个exe文件
右击属性,在exe后面先按一个空格键然后再加上-AudioMixer - PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOfScreen
运行复制的exe文件
打开浏览器输入127.0.0.1即可
链接成功后,信令服务器会显示一条命令,表明加入成功
三、局域网多实例部署
每个像素推流信令服务器对应一个UE4程序,多个客户端浏览器同时连接同一个像素流,如果仅仅观看没有问题,但多用户同时操作时就会互相影响了
要设置多用户对应多像素流程序,就需要启动多组UE4像素流程序和对应的信令服务器,设置不同的端口号,比如
A组
启动信令服务器参数
–httpPort 80 --streamerPort 8888
启动UE4程序参数
-PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888
B组
启动信令服务器参数
–httpPort 81 --streamerPort 8889
启动UE4程序参数
-PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8889
C组
启动信令服务器参数
–httpPort 82 --streamerPort 8890
启动UE4程序参数
-PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8890
浏览器通过访问不同端口的URL,就可以同时分别操作A组、B组和C组像素推流,互相之间不会干扰
http://127.0.0.1:80
http://127.0.0.1:81
http://127.0.0.1:82
修改位置config.json 文件配置
但这种访问不同端口URL的方式,在实际使用时会对多用户造成混乱,不知道那个端口空闲,哪个端口正在使用,这时候就需要引入新的路由分配服务器
Matchmaker分配服务器
UE4自带的Matchmaker分配服务器位于版本安装路径
Matchmaker分配服务器 UE4自带的Matchmaker分配服务器位于版本安装路径 D:\UE\UE4.27\Engine\Source\Programs\PixelStreaming\WebServers\Matchmaker
Matchmaker分配服务器设置
a.编辑matchmaker.js文件配置端口
var httpPort = 90; // 分配服务器统一对外服务端口
var matchmakerPort = 9999; // 分配服务器监听端口(供信令服务器连接)
运行D:\UE\UE4.27\Engine\Source\Programs\PixelStreaming\WebServers\Matchmaker\run.bat启动Matchmaker分配服务器
b.配置A-B-C组信令服务器,增加连接“匹配服务器”的参数设置 “D:\UE\UE4.27\Engine\Source\Programs\PixelStreaming\WebServers\Matchmaker\run.bat” --UseMatchmaker true --matchmakerAddress 127.0.0.1 --matchmakerPort 9999 --publicIp 127.0.0.1 --httpPort 80 --streamerPort 8888 其中: –UseMatchmaker true // 使用匹配服务器 –matchmakerAddress 127.0.0.1 // 匹配服务器IP –matchmakerPort 9999 // 匹配服务器设置的服务端口
启动Matchmaker分配服务器 启动A-B-C组SignallingWebServer信令服务器 信令服务器返回数据增了一行,表示信令服务器已经在Matchmaker匹配服务器注册成功
05:42:48.163 Cirrus connected to Matchmaker 127.0.0.1:9999
多用户浏览器访问 多用户浏览器统一访问Matchmaker分配服务器提供的IP和端口,由Matchmaker分配服务器自动匹配找到一组空闲的信令服务器和对应的像素流,推送给用户。
增加Matchmaker分配服务器后的局域网多用户部署构架如下图
实例操作:
第一步配置分配服务器
注意这个端口不要跟信令服务器的端口一样
配置好之后运行run.bat,开启分配服务器
第二步配置信令服务器
第一个信令服务器
第二个信令服务器
配置好之后分别运行run_local.bat
运行成功之后会出现连接成功的命令提示
运行程序1
-AudioMixer - PixelStreamingIP=localhost -PixelStreamingPort=7777 -RenderOfScreen
运行程序2
-AudioMixer - PixelStreamingIP=localhost -PixelStreamingPort=6666 -RenderOfScreen
打开浏览器
输入127.0.0.1:60和127.0.0.1:70
运行结果