UE5像素流公网多人部署

前言:

本机需要安装 node.js node安装与配置

打包项目时需要启用插件 Pixel Streaming

一、打包项目后进入 Samples\PixelStreaming\WebServers\SignallingWebServer 目录

1、在目录下新建 文本文档 添加以下内容,然后改名与后缀为 setup.bat

:: Copyright Epic Games, Inc. All Rights Reserved.
pushd %~dp0

npm install

popd

2、同上创建一个 run.bat 添加以下内容

:: Copyright Epic Games, Inc. All Rights Reserved.
@echo off

pushd %~dp0

call setup.bat

title Cirrus

::Run node server
::If running with frontend web server and accessing outside of localhost pass in --publicIp=<ip_of_machine>
node cirrus %*

popd
pause

 3、修改 config.json 文件,把 localhost 修改为公网ip(本地部署不用修改),HttpPort 修改为外网访问的端口(默认是80)

{
	"UseFrontend": false,
	"UseMatchmaker": false,
	"UseHTTPS": false,
	"UseAuthentication": false,
	"LogToFile": true,
	"LogVerbose": true,
	"HomepageFile": "/Public/player.html",
	"AdditionalRoutes": {},
	"EnableWebserver": true,
	"MatchmakerAddress": "",
	"MatchmakerPort": "9999",
	"PublicIp": "localhost",
	"HttpPort": 88,
	"HttpsPort": 443,
	"StreamerPort": 8888,
	"SFUPort": 8889,
	"peerConnectionOptions": "{ \"iceServers\": [{\"urls\": [\"stun:localhost:19302\",\"turn:localhost:19303\"], \"username\": \"PixelStreamingUser\", \"credential\": \"Another TURN in the road\"}] }"
}

 4、双击运行 run.bat 启动服务

 5、出现以下界面代表服务启动成功(窗口不要关)

 二、启动项目(返回项目根目录)

 1、创建项目启动文件快捷方式(win10可以选择文件后按住 alt 与鼠标左键拖动即可快速创建)

 2、创建快捷方式后,右键快捷方式选择属性,在目标后面,加上空格,再加上下面代码保存

-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888

3、打开创建的快捷方式运行项目(项目不能最小化,否则像素流不出去)在浏览器输入上面设置好的ip与端口(本地测试)

 三、公网访问

服务器需要开放 19302 与 19303 端口

需要获取ue4.26打包出来 release 文件夹

ue4.26后的版本已去掉了此文件,此文件里面是两个协议 turn 与 stun,用来公网NAT穿透

 1、随便导出一个4.26的测试项目(需要启用插件 Pixel Streaming),在导出的项目搜索 release 文件夹,可以复制出来单独使用

 

 2、修改 release 文件夹里面的 Start_AWS_TURNServer.ps1 文件,把 $LocalIp 后面修改为127.0.0.1

  

 3、分别启动 Start_AWS_TURNServer.bat 与 Start_STUNServer.bat(启动后窗口不要关)

 

 四、公网预览项目

在浏览器输入前面填的公网ip与端口即可访问

注意事项:

1、以上所有打开的命令窗口与项目运行窗口都不能关闭(3个命令窗口1个项目运行窗口)

2、如需后台运行项目,可以在上面的快捷方式加上之前的代码后接着加上空格与下面代码

3、如需关闭后台运行项目,需要去任务管理器结束

-RenderOffScreen

 五、可选功能(Matchmaker分发访问)此步骤与前面分开

服务器运行多个项目,通过访问一个Matchmaker地址,自动分发空闲的项目(有点类似服务器的负载均衡)

1、进入 Samples\PixelStreaming\WebServers\Matchmaker 目录,修改 config.json 文件的HttpPort 端口(不可与之前的信令服务器端口冲突)

{
	"HttpPort": 90,
	"UseHTTPS": false,
	"MatchmakerPort": 9999,
	"LogToFile": true
}

2、运行 run.bat 文件 (运行后窗口不要关)

 3、复制一份之前的信令服务文件夹

 4、分别修改里面的 config.json 文件,以下示例(主要修改UseMatchmaker、HttpPort、StreamerPort、SFUPort这四个值),localhost 修改为公网ip

第一个config.json

{
	"UseFrontend": false,
	"UseMatchmaker": true,
	"UseHTTPS": false,
	"UseAuthentication": false,
	"LogToFile": true,
	"LogVerbose": true,
	"HomepageFile": "/Public/player.html",
	"AdditionalRoutes": {},
	"EnableWebserver": true,
	"MatchmakerAddress": "",
	"MatchmakerPort": "9999",
	"PublicIp": "localhost",
	"HttpPort": 81,
	"HttpsPort": 443,
	"StreamerPort": 8001,
	"SFUPort": 8801,
	"peerConnectionOptions": "{ \"iceServers\": [{\"urls\": [\"stun:localhost:19302\",\"turn:localhost:19303\"], \"username\": \"PixelStreamingUser\", \"credential\": \"Another TURN in the road\"}] }"
}

 第二个config.json

{
	"UseFrontend": false,
	"UseMatchmaker": true,
	"UseHTTPS": false,
	"UseAuthentication": false,
	"LogToFile": true,
	"LogVerbose": true,
	"HomepageFile": "/Public/player.html",
	"AdditionalRoutes": {},
	"EnableWebserver": true,
	"MatchmakerAddress": "",
	"MatchmakerPort": "9999",
	"PublicIp": "localhost",
	"HttpPort": 82,
	"HttpsPort": 443,
	"StreamerPort": 8002,
	"SFUPort": 8802,
	"peerConnectionOptions": "{ \"iceServers\": [{\"urls\": [\"stun:localhost:19302\",\"turn:localhost:19303\"], \"username\": \"PixelStreamingUser\", \"credential\": \"Another TURN in the road\"}] }"
}

5、运行多个项目(也可以同一个项目复制多个快捷方式,运行是单独的)

 6、分别右键在属性的目标后面加上以下代码(同上记得先加空格)

// 快捷方式1
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8001

// 快捷方式2
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8002

 

 7、分别运行前面的两个信令服务与这个两个快捷方式,执行后访问前面信令服务 config.json 里面设置的公网ip与 Matchmaker 里面 config.json 设置的端口,即可自动分发

此教程需要具备一些的ue项目像素流的基础了解,如有疑问可留言

end 

### UE5 Pixel Streaming 用户部署教程和配置方法 #### 创建启动快捷方式并指定推流参数 对于用户的场景,可以通过创建个带有不同命令行参数的快捷方式进行配置。这些参数用于区分不同的客户端连接到同一信令服务器的不同端口。例如: ```bash E:\bin\云推流\WindowsNoEditor\PixelStream.exe -AudioMixer -PixelStreamingIP=192.168.1.19 -PixelStreamingPort=7770 ``` 此命令指定了信令服务器的 IP 地址 `192.168.1.19` 和监听端口 `7770`[^1]。 #### 设置信令服务器 自 UE4.24 版本起,不再需要单独启动 WebRTC 代理服务器;取而代之的是利用 Signaling 和 Web 服务器作为中介来桥接 UE4 应用与网页浏览器之间的通信。这意味着在进行用户部署时,只需确保所有客户端能够访问同一个信令服务器即可[^2]。 #### 调整客户端配置 为了支持位用户同时观看或交互,可以复制现有的快捷方式文件,并修改每个副本中的 `-PixelStreamingPort` 参数以匹配信令服务器上为各用户分配的独特端口号。这样做的好处是可以轻松管理大量并发会话而不必担心端口冲突问题[^4]。 #### 日志记录与调试选项 建议启用日志功能以便于排查可能出现的问题。可以在命令行中加入 `-log` 参数开启详细的运行日志输出,这对于开发阶段非常有用。另外,如果希望减少图形处理负担,则可附加 `-RenderOffScreen` 来关闭屏幕渲染。 ```python def create_shortcut(port_number, log_enabled=False, offscreen_rendering=False): base_command = "E:\\bin\\云推流\\WindowsNoEditor\\PixelStream.exe" options = ["-AudioMixer", f"-PixelStreamingIP=localhost", f"-PixelStreamingPort={port_number}"] if log_enabled: options.append("-log") if offscreen_rendering: options.append("-RenderOffScreen") full_command = ' '.join([base_command] + options) return full_command ```
评论 63
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值