本文记录了如何将 UE 项目打包至 Linux 环境,并通过另一台主机的 Web 网页进行像素流送展示。
⚠️ 重要前提 经测试,不建议使用 WSL 虚拟机(存在 Vulkan 无法识别显卡的硬件加速问题)。 本方案全程基于 原生 Ubuntu 系统服务器 进行操作。
参考文献:虚幻引擎中的像素流送入门 | 虚幻引擎 5.4 文档 | Epic Developer Community
第一阶段:Windows 开发端配置
在打包之前,必须确保 Windows 上的 UE 环境具备“跨平台编译”能力。
启用像素流插件
在 UE 编辑器中:
- 打开
编辑 (Edit) -> 插件 (Plugins)。 - 搜索 Pixel Streaming 并勾选启用。
- 重启引擎以生效。
安装跨平台编译工具链 (Toolchain)
UE 需要特定的工具链才能在 Windows 上生成 Linux 可执行文件。
- 下载:访问 虚幻引擎 Linux 开发要求,下载对应 UE 版本的 Toolchain。
- 配置环境变量:安装后,确保系统变量中存在
%LINUX_MULTIARCH_ROOT%。

验证:打开 CMD 输入:
1
%LINUX_MULTIARCH_ROOT%\x86_64-unknown-linux-gnu\bin\clang++ -v
若显示版本信息,则配置成功。

在 Epic 启动器中添加 Linux 支持
- 打开 Epic Games Launcher -> 库。
- 点击引擎版本旁的“下箭头” -> 选项。
- 勾选 Linux 目标平台并应用更新。

第二阶段:项目优化与打包
为了减小包体大小并提高运行效率,打包前需进行精简配置。
优化打包设置
- 精简地图:
项目设置 -> 打包 (Packaging) -> 列表:要包括在打包版本中的地图。点击+号,仅添加真正需要运行的关卡地图。 - 强制烘焙:勾选 **只烘培地图 (Cook only maps)**,确保不会打包无用的资产。

执行打包
- 点击
平台 (Platforms) -> Linux -> 打包项目 (Package Project)。 - 打包完成后,你会得到一个包含
项目名.sh的 Linux 文件夹。

第三阶段:Linux 服务端环境配置
假设你已经安装好了 Ubuntu 原生系统。
基础环境更新
切换国内镜像源并更新系统:
1 | # 配置国内镜像源 |
准备项目文件
在 Linux 中创建目录(如
~/UE_Project)。通过 SCP 或 U 盘将 打包文件夹 上传至该目录。
赋予执行权限:
1
chmod +x 项目名.sh
生成像素流组件
进入信令服务器相关目录,执行初始化脚本:
1 | cd ~/UE_Project/Samples/PixelStreaming/WebServers |
第四阶段:启动与运行
配置并启动信令服务器
修改 IP:编辑
SignallingWebServer/config.json,将"PublicIp"修改为 Linux 服务器的局域网 IP。关闭防火墙(防止 UDP 流被截断):
1
sudo ufw disable
启动脚本:
1
2
3
4
5
6
7cd SignallingWebServer/platform_scripts/bash
chmod +x *.sh
./setup.sh # 安装启动服务器所有必需的依赖性包
./Start_SignallingServer.sh #启动信令服务器
启动 UE 程序
新开一个终端窗口,运行打包好的 UE 脚本:
1 | ./项目名.sh -RenderOffScreen -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 |
-RenderOffScreen: 后台渲染,不弹出窗口。-PixelStreamingIP: 绑定本地转发 IP。
第五阶段:故障排查与进阶
解决网络波动/延迟
如果发现网页访问卡顿,尝试以下方案:
- 禁用 IPv6:WebRTC 有时会错误选择 IPv6 导致路由迂回。
- 强制 IPv4:启动参数加上
-PixelStreamingIP=你的实际局域网IP。 - 硬件编码检查:确保安装了最新的 NVIDIA 闭源驱动(通过
nvidia-smi查看)。
常用运维命令
强制杀掉残留进程:
1
ps -ef | grep -E "UE|Cirrus" | grep -v grep | awk '{print $2}' | xargs kill -9
**检查端口占用 (8888)**:
1
netstat -tuln | grep 8888
静态 IP 设置 (Netplan)
若需固定 Linux 服务器 IP,编辑 /etc/netplan/*.yaml:
1 | network: |
应用配置:sudo netplan apply。
附录:关于 WSL 的迁移参考
(注:虽然本案例最终放弃了 WSL,但以下步骤可用于Windows配置wsl运行Ubuntu)
基础安装与配置
wsl以及Ubuntu的安装
打开 PowerShell(右键点击开始菜单 -> 选择“Windows PowerShell (管理员)” 或 “终端 (管理员)”),输入以下命令并回车:
1 | wsl --install -d Ubuntu-22.04 |
- 注意:如果这是第一次安装 WSL,安装完成后可能需要重启电脑。重启后,Ubuntu 终端会自动弹出来继续安装。
设置用户名以及密码
等待 Ubuntu 终端提示你输入新的 UNIX 用户名(Enter new UNIX username:)。
- 输入一个你喜欢的全英文小写用户名(例如
xiaoming),回车。 - 输入密码(输入时屏幕不会显示任何字符,这是正常的保护机制),回车确认。
- 设置完成后,直接关闭这个 Ubuntu 的黑色终端窗口。
关闭wsl
回到 PowerShell,输入以下命令确保 WSL 完全关闭,防止文件被占用:
PowerShell
1 | wsl --shutdown |
将Ubuntu迁移到D盘
导出 Ubuntu 系统
我们将刚刚装好的干净系统打包成一个文件放到 D 盘。在 PowerShell 中输入:
1 | wsl --export Ubuntu-24.04 D:\env\linux\ubuntu-24.04.tar |
注销 C 盘的 Ubuntu
这一步会将 Ubuntu 从 C 盘彻底删除,释放 C 盘空间:
1 | wsl --unregister Ubuntu-24.04 |
- 你可以通过
wsl -l -v命令检查,此时应该没有任何发行版了。
在 D 盘创建存放目录并导入
首先,在 D 盘建一个你喜欢的文件夹用来存放 WSL 的虚拟硬盘(例如 D:\WSL\Ubuntu):
1 | mkdir D:\WSL\Ubuntu |
然后,将刚才导出的 tar 文件导入到这个新目录中,并重新命名为 Ubuntu-22.04:
1 | wsl --import Ubuntu-24.04 D:\env\linux\Ubuntu24 D:\env\linux\ubuntu-24.04.tar |
- 完成后,可以去
D:\WSL\Ubuntu文件夹下查看,里面会有一个ext4.vhdx文件,这就是以后的 Ubuntu 系统盘了
恢复默认登录用户
由于通过导入方式安装的 WSL 默认会以 root(超级管理员)身份登录,我们需要把它改回你之前设置的普通用户。
进入 Ubuntu 修改配置文件
在 PowerShell 中输入以下命令进入 Ubuntu:
1 | wsl -d Ubuntu-24.04 |
你会发现命令提示符变成了 root@你的电脑名。输入以下命令(注意将 你的用户名 替换为你在之前步骤中设置的英文小写用户名):
1 | echo -e "[user]\ndefault=你的用户名" > /etc/wsl.conf |
退出并重启 WSL
输入 exit 退出 Ubuntu,回到 PowerShell。然后再次彻底关闭 WSL 以使配置生效:
1 | wsl --shutdown |