UE像素流多开与部署
1. 像素流部署
① 确认是否需要启动 Matchmaker (单独访问不需要启动,多开才需要进行调配)
② 确认信令服务器(SignallingWebServer)的启动命令配置的端口,也就是 HttpPort(像素流访问地址) 和 StreamerPort(像素流推流地址)(分别以 80 和 8888 为例)
③ 打开设置防火墙开放端口(以Windows 为例)
控制面板(右上角的查看方式切换为 类别) ---> 系统和安全 ---> Windows Defender 防火墙 ---> 高级设置

入站规则 ---> 新建规则 ---> 端口 ---> TCP ---> 特定本地端口中输入 要开放的端口如前面的 Matchmaker 的端口和 信令服务器的端口
80、8888、303、19303、19302
注:303、19303、19302 端口的作用
303:是辅助端口,不是必须开放,根据实际选择开放或不开放
19303: 是像素流数据传输的 端口,里面包含ue 画面的编码和音频数据,是必须开放的端口
19302: 是浏览器和信令服务器的 通讯接口,基于 webSocket 协议,是必须开放的端口

完成新建规则后,再重复一遍,但选择端口是要选择 UDP 端口
UDP 和 TCP 端口开放完毕后,即可
2. 像素流多开
前提 像素流多开 需要启动 Matchmaker
Matchmaker 的启动命令:
powershell
start "" "%~dp0Samples\PixelStreaming\WebServers\Matchmaker\platform_scripts\cmd\run.bat"
注意:
① dp0 后面的目录跟随实际目录进行修改
② 如果没有指明 使用哪个 config 文件会默认使用 Matchmaker 下的 config.json
config 的 HttpPort 和 MatchmakerPortHttpPort 是访问端口,假如它为 80 ,启动 两个信令服务器,信令服务器的端口分别为 81 和 82,那么访问 80 时会检测 81 和 82 有没有被浏览器连接占用,如果都没有占用 会随机分配一个 信令服务器进行连接,如果81占用 则会访问 82 的,如果都被占用,会提示等待其他用户退出,当其他浏览器端口关闭后,才会正常访问
MatchmakerPort 是 Matchmaker 监听 客户端连接和内部服务器通信的 端口,主要是用来处理 调配端口的 上面说的 httpPort 访问情况 就是 这个端口进行分配的
启动信令服务器 的命令
powershell
start "" "%~dp0\Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd\run_local.bat" --HttpPort 83 --StreamerPort 8881 --SFUPort 7889 --UseHttps=false
需要有多少并发,就启动几个 信令服务器,不过这个是有限制的,一般家用显卡只支持最多开 三个,如果需要更多的并发,请使用 集群部署的方式 或 更换专业显卡
启动 ue 程序的命令
powershell
:: Copyright Epic Games, Inc. All Rights Reserved.
@echo off
pushd "%~dp0"
title UE
start
Windows\UE.exe
-PixelStreamingURL=ws://127.0.0.1:8881 -AudioMixer -ForceRes -ResX=1920 -ResY=1080 -log -RenderOffScreen
注意 :
① start 后面更换实际程序路径
② ws://127.0.0.1:8881 这个后面的端口要和 启动的 信令服务器的 StreamerPort 一致,注意有多少个 信令服务器就要启动几个 UE 程序 且端口对应,否则会出现 无连接的情况
可能会遇到的问题
1.启动失败
① 检查是否有无 Node 环境,若没有建议安装一个 node 环境 版本最好是 v16 版本的
② 有node 环境,在启动 信令服务器 或 Matchmaker 时报错
需要安装一下依赖,跳转到对应目录,运行 命令
powershell
npm install
再次运行程序 即可