欢迎光临散文网 会员登陆 & 注册

UE5像素流送公网部署(5.1版本)

2023-07-28 15:48 作者:零元鱼头  | 我要投稿

最近需要使用UE5像素流送,踩了很多坑,记录一下部署流程。

一、部署准备

1. 打开网络端口

必须打开本地网络上的以下端口进行通信:80、8888、19303。19303端口用于内网穿透,请打开UDP端口。以上三个端口都可以在配置文件或是脚本中修改。

2. 安装必要插件

下载Visual Studio安装C++游戏开发组件,默认勾选的组件也要装上。


二、准备虚幻引擎应用程序

1. 在虚幻编辑器中打开项目。

2.在虚幻编辑器的主菜单中选择 编辑(Edit) > 插件(Plugins) 。

3.在 图像(Graphics) 下找到 像素流送(Pixel Streaming) 插件并勾选 启用(Enabled) 框。

            


4.点击 立即重启(Restart Now) 重启项目并应用修改。

5. 打包Windows项目。从虚幻编辑器的主菜单中选择 平台 > Windows > 打包项目。如果这一步出错,请确认Visual Studio中的组件是否成功安装。

6. 打包进程完毕后,前往第5步中选择的文件夹,找到一个名为 Windows 的文件夹,其内容如下:

9. 为ue应用设置一个快捷方式:

①按住 Alt 键并拖动 .exe 文件即可在相同文件夹中(或在其他任意处)新建一个快捷方式。

②右键点击快捷方式并从上下文菜单中选择 属性(Properties) 。

③在 快捷方式属性(Shortcut Properties) 窗口的 快捷方式(Shortcut) 选项卡中,在 目标(Target) 域的末尾附加文本 

 并点击 确认 。在公网部署的情况下,请将localhost修改成公网外网IP。

ps. 可以添加参数-log -RenderOffScreen让程序在后台运行并打印log。


3、获取像素流服务器

1. 找到项目文件夹下Samples\PixelStreaming\WebServers 并运行 get_ps_servers 命令(确保将相应的.bat 脚本用于Windows,将相应的 .sh 脚本用于Linux)。这会在文件夹 SignallingWebServer下创建信令服务器。

2. 为了准备信令服务器,首先以管理员身份打开PowerShell并运行 SignallingWebServer\platform_scripts\cmd\setup.ps1。这会安装所有需要的依赖项。这一步可能会因为网络问题下载异常。请确保coturnnode这两个文件夹不为空,如果为空,将其删除后重新执行setup.ps1。实在不行,请手动安装。地址如下:

https://nodejs.org/dist/v16.4.2/node-v16.4.2-win-x64.zip

https://github.com/mcottontensor/coturn/releases/download/v4.5.2-windows/turnserver.zip



ps. 如果出现无法执行的情况,请在PowerShell中执行

选择y,开启脚本执行权限。

3.  打开SignallingWebServer\config.json文件,将PublicIp修改成公网IP。如果需要指定http端口和推流端口,也在此处修改。

4. 以管理员身份打开PowerShell并运行 SignallingWebServer\platform_scripts\cmd\Start_WithTURN_SignallingServer.ps1, 这将会开启两个控制台运行信令服务器和stun/turn服务器。服务器启动,能够接收连接后,控制台窗口中将出现以下命令行:

5.  现在用上一节中创建的快捷方式来启动虚幻引擎应用程序。

最终结果

当虚幻应用程序运行连接到信令服务器和Web服务器时,应该可以在信令和Web服务器打开的控制台窗口中看到以下输出行:

Streamer connected: ::1

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

此时必要的设置均已在电脑上完成。现在只需连接到浏览器。


4、连接

在浏览器中输入公网ip和http端口,点页面进行连接,然后再次点击"播放(Play)"按钮开始流送。 现在便会连接到应用程序,渲染输出将流入播放器Web页面中。


5、播放黑屏问题

1. 浏览器问题

测试中发现,在个别机器上的个别浏览器中(就是你Chorme)会出现黑屏问题,换个浏览器就解决了。

2. 无法正确拿到公网ip

有的云主机做了ip地址的转发,导致脚本无法正确获取到公网ip地址。这种情况可以修改脚本或者使用命令行传参。本文采用修改脚本的方法。打开SignallingWebServer\platform_scripts\cmd\Start_Common.ps1。在下图所示位置处将($global:PublicIP).Content修改成自己的公网ip。如果指定了内网穿透端口,也可以在图示位置处将默认的19303修改成自己的所指定的端口。

6、参考资料

https://docs.unrealengine.com/5.1/zh-CN/pixel-streaming-in-unreal-engine/

虚幻引擎官方文档


UE5像素流送公网部署(5.1版本)的评论 (共 条)

分享到微博请遵守国家法律