【虚幻引擎】UE4像素流推送PixelStreaming

一、前言

        虚幻引擎像素流送(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

 运行结果

3、广域网部署 广域网部署与局域网部署步骤一样,只是把局域网的设置全部搬到广域网服务器上即可。由于需要在广域网服务器上运行UE4程序,需要服务器配置高性能显卡(通常称为GPU云服务器)

猜你喜欢

转载自blog.csdn.net/qq_43021038/article/details/128481686