因为工作需要最近在做虚幻引擎5.1这方面的部署,简单记录一下最近学习的一点知识。
本文参考:虚幻引擎官网文档
UE5像素流送原理及多用户公网部署小白教程202211022220
图片来源于虚幻引擎官网
对于用户而言,这种体验就像是在YouTube或Netflix上观看视频流送,但有2点例外:
优点
使用像素流送系统有以下几个优点:
图片来源于虚幻引擎官网
组件
连接进程
采用以下步骤将虚幻引擎项目渲染输出从本地网络流送到浏览器和移动设备。
此页上的步骤图像展示流程中使用的项目 第三人称蓝图 模板构建。实际上该步骤可用于所有虚幻引擎项目。
先决条件
1 - 准备虚幻引擎应用程序
在这个步骤中将为项目创建一个standalone可执行文件。
1.只有将项目作为打包应用程序运行时、或使用 Standalone Game 选项在虚幻引擎中启动时才能使用像素流送插件。
2.要使像素流送插件从应用程序中提取并流送音频,需要用一条特殊的命令行标签启动虚幻引擎:-AudioMixer。以下步骤将解释如何在两种情况下进行设置。
在虚幻编辑器中打开项目。
在虚幻编辑器的主菜单中选择 编辑(Edit)
> 插件(Plugins)
。
在 图像(Graphics)
下找到 像素流送(Pixel Streaming)
插件并勾选 启用(Enabled)
框。
返回虚幻编辑器,从主菜单中选择 编辑(Edit)
> 项目设置(Project Settings)
。
如果项目中有角色,而您希望启用触控设备的输入(如手机和平板电脑)在关卡中移动此角色,则可能需要在屏幕上显示触摸控制器。
在 引擎(Engine)
>输入类型(Input category)
下启用 固定显示触控界面(Always Show Touch Interface)
设置。
此项为任选,并非所有项目强制要求。然而,在第三人称面板之类的项目中,这能确保拥有触控设备的用户能对流送的应用程序进行控制(前提是项目的玩家控制器支持输入)。
在主菜单中选择编辑(Edit)
> 编辑器偏好(Editor Preferences...)
在 关卡编辑器(Level Editor)
> 播放(Play)
中找到 额外启动参数(Additional Launch Parameters)
设置,并将其值设为 - AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
打包Windows项目。从虚幻编辑器的主菜单中选择文件(Files)
> 打包项目(Package Project)
>Windows
> Windows (64-bit)
。
在项目找打开虚幻引擎放置项目打包版本的文件夹,点击 选择文件夹(Select Folder)
。
Run文件夹为我自定义的文件夹名称看个人喜好决定。
虚幻编辑器将开始打包进程。
每次启动打包应用程序时,均需要传递与第8步中一样的命令行标签。执行此操作的一种方法是设置一个快捷方式:
a.按住 Alt 键并拖动 .exe 文件即可在相同文件夹中(或在其他任意处)新建一个快捷方式。
b.右键点击快捷方式并从上下文菜单中选择 属性(Properties)
。
c.在 快捷方式属性(Shortcut Properties) 窗口的 快捷方式(Shortcut) 选项卡中,在 目标(Target) 域的末尾附加文本 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
并点击 确认。
-PixelStreamingIP=localhost 设置换成你需要访问的公网IP
让像素流送系统开始运行后,可能还需要添加 -RenderOffScreen 命令行参数。如果虚幻引擎应用程序窗口意外被最小化,像素流送视频和输入流送将停止工作。-RenderOffScreen 能以headless模式运行应用程序,不带可见窗口,避免意外发生。
2 - 启动信令服务器
在这个步骤中将开启网络服务,在虚幻引擎应用程序和客户端浏览器间建立点对点的连接。
以下步骤使用的是腾讯云服务器Windows系统。不过,Linux系统上的操作方式相同,唯一不同在于你要执行 SignallingWebServer\platform_scripts\cmd\bash 目录中的脚本。
登录腾讯云官网
选择云服务器CVM
选择设置网络和主机
网络可以按自己的需求更改配置我这里选择的默认的,带宽值按自己的需求更改即可,安全组选择新建安全组全选。
设置自己的登录名和密码,设置完后选择下一步。
安全组配置:
UDP:22,3389,80,443,20,21,19303,19302,3478,8888,81,82
TCP:22,3389,80,443,20,21,19303,19302,3478,8888,81,82
我这里为了演示就直接又开了一个TCP:1-10000的
可以根据自己的需求来更改安全组规则
进来后把信令服务器复制过来
信令生成的目录就在\Windows\项目名\Samples
下
双击运行信令服务器文件夹的WebServers\SignallingWebServer\platform_scripts\cmd
目录的setup.bat
文件
等它自动下载安装好所需的文件
下载完后就会出现coturn
和node
两个文件夹
这是这两个文件夹里的内容,这两个文件夹比较重要是我们能够通过公网访问的保证请务必确认好下载是否完整
下载完毕后对信令进行配置打开config.json文件
这里改为我们服务器的公网IP
到这里我们的一个信令服务器就基本配置完毕了
9. 启动信令服务器
运行 SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1 开启信令服务器。首次运行服务器时其将下载需要的所有依赖性。服务器启动,能够接收连接后,控制台窗口中将出现以下命令行:
WebSocket listening to Streamer connections on :8888
WebSocket listening to Players connections on :80
Http listening on *: 80
现在用上一节中创建的快捷方式来启动虚幻引擎应用程序。或者,如果你习惯用命令行来启动应用,请执行以下命令:
MyPixelStreamingApplication.exe -AudioMixer -PixelStreamingIP=公网IP -PixelStreamingPort=8888
上面这个是官方文档提供的启动我们应用的方式
我这里是创建了一个启动实例文件把命令写在里面执行的
脚本代码:
@echo off
start D:\UE_XiangMu\piexl_test08\Run\Windows\piexl_Test08.exe -AudioMixer -PixelStreamingIP=公网IP -PixelStreamingPort=8888 -log -RenderOffScreen
如有必要,你可以分别中断并重启虚幻引擎应用程序及信令和Web服务器。只要它们同时运行,就能够自动重连。
此时必要的设置均已在电脑上完成。现在只需连接到浏览器。
服务器IP
:信令端口
。ps:
如果需要多实例访问只需要启动自带的Matchmaker
启动方式:
1.PixelStreaming\WebServers\Matchmaker\platform_scripts\cmd
运行setup.bat
文件先下载安装所需的环境下载完毕后运行run.bat
文件。
2.复制一份SignallingWebServer
3.修改信令服务器的config.json
文件
需要几个实例可以复制几份信令服务器更改对应的关键配置即可。
3.同样几个信令服务器就需要启动几个对应的应用实例
配置完成后 建议启动顺序 Matchmaker
→SignallingWebServer1、SignallingWebServer2 ....
→本地运行实例1.bat、本地运行实例2.bat....
启动后在浏览器输入服务器IPMatchmaker
就会自动接入空闲的信令服务器。
后记:虚幻引擎5.1后甚至有免费公开STUN服务器可供使用,无需另行创建。但在实际操作时,建议谨慎使用非自行创建的服务器。(考虑到通过TURN协议中继媒体时所涉及的容量和带宽,公开TURN服务不太可能完全免费。)
要设置像素流送以使用ICE连接,需要设置在信令和Web服务器 peerConnectionOptions 配置参数中使用的STUN和TURN服务器主机名。欲了解该参数格式化和支持方法的详情,请参阅像素流送参考。
此外,如自行创建STUN或TURN服务器,务必确保在 peerConnectionOptions 参数中为其指定的IP地址和端口在公开网络中可见。
其实官网文档中给了很多很完整的说明和指导如果使用本文档中有不明白以及任何问题的话可以私信我或者加我QQ1512826122一起探讨学习UE5的一些问题。
目前正在学习如何自动化部署UE5的一些方法,如果有兴趣的话欢迎一起讨论和实施。
以上就是公网访问的全部内容了