虚幻引擎Liunx像素流送部署

近期在linux系统上部署了一套虚幻引擎的像素流送服务,简单记录一下过程。

检查硬件

UE像素流送入门icon-default.png?t=N7T8https://dev.epicgames.com/documentation/zh-cn/unreal-engine/getting-started-with-pixel-streaming-in-unreal-engine

安装Docker

选择安装平台

Docker要求CentOS系统的内核版本高于3.10

uname -r #通过 uname -r 命令查看你当前的内核版本

之后按照官方文档安装即可

Docker安装文档icon-default.png?t=N7T8https://docs.docker.com/get-docker/

在安装新Docker之前要先卸载旧的Docker

安装NVDIA容器工具包

首先在linux系统闪更需要有gpu,并支持够硬件加速,首先需要安装NVDIA容器工具包

虚幻引擎容器

了解虚幻引擎镜像拉取的先决条件及容器入门,这个文档内有拉取虚幻引擎镜像的先决条件与EPIC账号与虚幻引擎Github仓库相关联,此为必要操作

UE容器官方文档icon-default.png?t=N7T8https://dev.epicgames.com/documentation/zh-cn/unreal-engine/hardware-and-software-requirements-for-container-deployments-in-unreal-engine

虚幻引擎Docker镜像拉取

UE容器地址文档icon-default.png?t=N7T8https://unrealcontainers.com/docs/use-cases/pixel-streaming

建议拉取像素流送运行时镜像

docker pull ghcr.io/epicgames/unreal-engine:runtime-pixel-streaming

拉取信令服务器镜像,后面的5.2为引擎的版本

docker pull ghcr.io/epicgames/pixel-streaming-signalling-server:5.2

注意,信令服务器需要与当前引擎版本相同。

拉取coturn

docker pull coturn/coturn

拉取完成后环境搭建完成。

Docker-Compose下载

由于像素流的启动需要同时启动多个容器,所以使用到DockerCompose

DockerCompose下载安装icon-default.png?t=N7T8https://docs.docker.com/compose/

上传虚幻引擎程序

在Windows上打包Linux程序

虚幻引擎提供交叉编译工具包,提供在windows系统上打包Linux程序的功能。

官方交叉编译工具包下载icon-default.png?t=N7T8https://dev.epicgames.com/documentation/zh-cn/unreal-engine/linux-development-requirements-for-unreal-engine

注意,工具包必须选择与当前引擎版本相同的版本。打包的文件务必开启像素流送插件!!!

在linux打包

在linux打包需要下载开发版本的虚幻引擎镜像而并非运行时镜像

UE在linux上构建打包项目icon-default.png?t=N7T8https://dev.epicgames.com/documentation/zh-cn/unreal-engine/quick-start-guide-for-using-container-images-in-unreal-engine

拉取开发镜像,4.27为引擎版本。

docker pull ghcr.io/epicgames/unreal-engine:dev-4.27

我使用在windows打包,所以后续将介绍在windows打包后如何在Linux上运行。但是理论上在Liunx打包,除了打包方式不同外,其他并无差别。

上传程序

我使用FinalShell链连接Linux服务器,直接拖动文件到你想要的文件夹下即可

刚开始文件上传完成应该只有Liunx与linux_ue_project_test文件夹,我这里是有两个项目,所以是两个文件夹,正常只有一个文件夹。

剩余的文件在引擎目录下,project文件夹下有Dockerfile文件

将文件复制到服务器上,准备完成。

注意,建议run.sh文件不要直接复制,在服务器上新建.sh文件,然后手动将代码复制到文件里,FinalShell提供直接修改文件的功能,右键打开即可,这样可以避免因编码问题导致.sh文件无法运行的问题。

相关的文件修改

将文件上传完成后,我们并不能直接运行,需要修改相关的文件。

修改文件的执行权限

在程序运行的时候,容器内部会对UE的程序的文件进行执行,读取,写入的操作,所以必须先把所有的文件的权限打开。在FinalShell中右键文件夹,在弹出的右键菜单中选择文件权限,会弹出如下界面,按照下面界面设置,确定即可。

修改Dockerfile文件

原始的Dockerfile文件应该是下面这个样子

上面的一部分代码是使用虚化引擎的dev版本进行打包,我们已经在外部进行了打包,所以上面部分不需要,修改完后的文件为

其中Copy命令为把UE的文件拷入容器内,前面的为宿主机文件路径,后面的文件路径为容器内路径,文件夹会自动创建,ENTERPOINT为配置容器进入点,这里表示进入容器时运行ZGDX.sh。

修改docker-compose文件

原始文件如下图

修改后的文件内容如下

修改 turnserver下的image,这个镜像的名字为我们下载的coturn的镜像名字加版本号,由于我拉取镜像时没有指定版本,所以拉取的是最新的镜像,版本号为latest。

修改project下的image与build下的context,image为我们使用上面的dockerfile创建的docker镜像的名称,自定义设置,context为dockerfile文件所在的文件目录,./代表当前目录下,目录是相对docker-compose文件的位置。

project下的command参数为像素流送的启动参数。

运行Liunx像素流送程序

在Linux中使用bash进入到run.sh所在目录,使用

bash run.sh 5.2

后面5.2为run.sh需要的参数,参数为你使用的当前的引擎版本

下面为运行成功的结果

其它问题

报错initSDL

如果出现此错误,是由于没有输出设备所致,运行时加上参数-RenderOffScreen即可,如果不加则需要额外的添加对虚拟输出的支持。

镜像的版本不对

使用bash命令

docker images

查看当前安装的镜像与版本,检查是否与引擎版本一致

### 如何在Linux服务器上部署应用程序或服务 #### 使用SCP传输文件至远程服务器 为了将开发完成的应用程序从本地计算机上传到远程Linux服务器,可以利用`scp`命令实现安全复制。通过指定源路径、目标主机以及目的地路径来完成操作。例如,假设有一个名为`publish`的发布目录,想要将其发给位于`your_production_server`上的特定位置,则可执行如下指令: ```bash scp -r ./publish username@your_production_server:/path/to/destination[^1] ``` 此过程会要求输入密码验证身份,之后即可把整个项目打包传到远端机器。 #### 安装必要的依赖项和服务 对于基于Red Hat系列的操作系统(如CentOS),推荐采用`yum`作为默认软件包管理工具来进行安装工作。它能够帮助快速获取并设置好所需的库和其他组件。比如要更新现有资源或者新增某些功能模块时,可以通过下面的方式调用该命令: ```bash sudo yum install package_name ``` 这一步骤确保了所有必需的支持都被正确加载到了环境中[^2]。 #### 设置虚拟环境与激活 当涉及到Python项目的部署时,在正式上线前通常还需要创建独立的工作空间——即所谓的“虚拟环境”。这样做不仅有助于隔离不同版本间的冲突问题,而且也方便后续维护升级等工作。一旦完成了上述步骤后,记得先退出任何正在使用的其他环境实例再继续前进;具体做法就是简单地键入`deactivate`命令返回全局状态: ```bash deactivate ``` 此时所有的Python解释器和相关工具都将恢复成最初的状态,等待进一步指示去启动新的进程或是导入额外的数据集等任务[^3]。 #### 部署Web应用示例流程 针对具体的Web框架而言,实际操作可能会有所差异,但总体思路大致相同:首先是确认运行平台兼容性,接着按照官方文档指导逐步配置各项参数直至最终成功访问站点为止。期间可能还会涉及数据库连接字符串调整、静态资源映射规则定义等多个方面内容。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值