本文记录了如何将 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 输入%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 原生系统。基础环境更新切换国内镜像源并更新系统# 配置国内镜像源 sudo sed -i s//.*archive.ubuntu.com//mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list sudo sed -i s//.*security.ubuntu.com//mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list sudo apt update sudo apt upgrade -y # 安装基础组件nodejs,npm 以及 Vulkan sudo apt install nodejs npm mesa-vulkan-drivers vulkan-tools libvulkan1 -y准备项目文件在 Linux 中创建目录如~/UE_Project。通过 SCP 或 U 盘将打包文件夹上传至该目录。赋予执行权限chmod x 项目名.sh生成像素流组件进入信令服务器相关目录执行初始化脚本cd ~/UE_Project/Samples/PixelStreaming/WebServers chmod x get_ps_servers.sh sed -i s/\r$// get_ps_servers.sh # 修复 Windows 换行符问题 ./get_ps_servers.sh #将相关像素流送基础设施分支提取到该文件夹中第四阶段启动与运行配置并启动信令服务器修改 IP编辑SignallingWebServer/config.json将PublicIp修改为Linux 服务器的局域网 IP。关闭防火墙防止 UDP 流被截断sudo ufw disable启动脚本cd SignallingWebServer/platform_scripts/bash chmod x *.sh ./setup.sh # 安装启动服务器所有必需的依赖性包 ./Start_SignallingServer.sh #启动信令服务器启动 UE 程序新开一个终端窗口运行打包好的 UE 脚本./项目名.sh -RenderOffScreen -PixelStreamingIP127.0.0.1 -PixelStreamingPort8888-RenderOffScreen: 后台渲染不弹出窗口。-PixelStreamingIP: 绑定本地转发 IP。第五阶段故障排查与进阶解决网络波动/延迟如果发现网页访问卡顿尝试以下方案禁用 IPv6WebRTC 有时会错误选择 IPv6 导致路由迂回。强制 IPv4启动参数加上-PixelStreamingIP你的实际局域网IP。硬件编码检查确保安装了最新的 NVIDIA 闭源驱动通过nvidia-smi查看。常用运维命令强制杀掉残留进程ps -ef | grep -E UE|Cirrus | grep -v grep | awk {print $2} | xargs kill -9检查端口占用 (8888)netstat -tuln | grep 8888静态 IP 设置 (Netplan)若需固定 Linux 服务器 IP编辑/etc/netplan/*.yamlnetwork: version: 2 renderer: networkd ethernets: enp3s0: # 这里换成你第一步找出的网卡名 dhcp4: no # 关闭自动获取 IP addresses: - 192.168.31.200/24 # 你想要固定的 IP 地址及子网掩码 routes: - to: default via: 192.168.31.1 # 你的网关地址通常是路由器 IP nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS 服务器应用配置sudo netplan apply。附录关于 WSL 的迁移参考注虽然本案例最终放弃了 WSL但以下步骤可用于Windows配置wsl运行Ubuntu基础安装与配置wsl以及Ubuntu的安装打开 PowerShell右键点击开始菜单 - 选择“Windows PowerShell (管理员)” 或 “终端 (管理员)”输入以下命令并回车wsl--install-d Ubuntu-22.04注意如果这是第一次安装 WSL安装完成后可能需要重启电脑。重启后Ubuntu 终端会自动弹出来继续安装。设置用户名以及密码等待 Ubuntu 终端提示你输入新的 UNIX 用户名Enter new UNIX username:。输入一个你喜欢的全英文小写用户名例如xiaoming回车。输入密码输入时屏幕不会显示任何字符这是正常的保护机制回车确认。设置完成后直接关闭这个 Ubuntu 的黑色终端窗口。关闭wsl回到 PowerShell输入以下命令确保 WSL 完全关闭防止文件被占用wsl--shutdown将Ubuntu迁移到D盘导出 Ubuntu 系统我们将刚刚装好的干净系统打包成一个文件放到 D 盘。在 PowerShell 中输入wsl--export Ubuntu-24.04 D:\env\linux\ubuntu-24.04.tar注销 C 盘的 Ubuntu这一步会将 Ubuntu 从 C 盘彻底删除释放 C 盘空间wsl --unregister Ubuntu-24.04你可以通过wsl -l -v命令检查此时应该没有任何发行版了。在 D 盘创建存放目录并导入首先在 D 盘建一个你喜欢的文件夹用来存放 WSL 的虚拟硬盘例如D:\WSL\Ubuntumkdir D:\WSL\Ubuntu然后将刚才导出的 tar 文件导入到这个新目录中并重新命名为Ubuntu-22.04wsl --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 中输入以下命令进入 Ubuntuwsl-d Ubuntu-24.04你会发现命令提示符变成了root你的电脑名。输入以下命令注意将你的用户名替换为你在之前步骤中设置的英文小写用户名echo -e [user]\ndefault你的用户名 /etc/wsl.conf退出并重启 WSL输入exit退出 Ubuntu回到 PowerShell。然后再次彻底关闭 WSL 以使配置生效wsl --shutdown
虚幻引擎 (UE) Linux 像素流送 (Pixel Streaming) 部署
发布时间:2026/5/27 16:36:41
本文记录了如何将 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 输入%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 原生系统。基础环境更新切换国内镜像源并更新系统# 配置国内镜像源 sudo sed -i s//.*archive.ubuntu.com//mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list sudo sed -i s//.*security.ubuntu.com//mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list sudo apt update sudo apt upgrade -y # 安装基础组件nodejs,npm 以及 Vulkan sudo apt install nodejs npm mesa-vulkan-drivers vulkan-tools libvulkan1 -y准备项目文件在 Linux 中创建目录如~/UE_Project。通过 SCP 或 U 盘将打包文件夹上传至该目录。赋予执行权限chmod x 项目名.sh生成像素流组件进入信令服务器相关目录执行初始化脚本cd ~/UE_Project/Samples/PixelStreaming/WebServers chmod x get_ps_servers.sh sed -i s/\r$// get_ps_servers.sh # 修复 Windows 换行符问题 ./get_ps_servers.sh #将相关像素流送基础设施分支提取到该文件夹中第四阶段启动与运行配置并启动信令服务器修改 IP编辑SignallingWebServer/config.json将PublicIp修改为Linux 服务器的局域网 IP。关闭防火墙防止 UDP 流被截断sudo ufw disable启动脚本cd SignallingWebServer/platform_scripts/bash chmod x *.sh ./setup.sh # 安装启动服务器所有必需的依赖性包 ./Start_SignallingServer.sh #启动信令服务器启动 UE 程序新开一个终端窗口运行打包好的 UE 脚本./项目名.sh -RenderOffScreen -PixelStreamingIP127.0.0.1 -PixelStreamingPort8888-RenderOffScreen: 后台渲染不弹出窗口。-PixelStreamingIP: 绑定本地转发 IP。第五阶段故障排查与进阶解决网络波动/延迟如果发现网页访问卡顿尝试以下方案禁用 IPv6WebRTC 有时会错误选择 IPv6 导致路由迂回。强制 IPv4启动参数加上-PixelStreamingIP你的实际局域网IP。硬件编码检查确保安装了最新的 NVIDIA 闭源驱动通过nvidia-smi查看。常用运维命令强制杀掉残留进程ps -ef | grep -E UE|Cirrus | grep -v grep | awk {print $2} | xargs kill -9检查端口占用 (8888)netstat -tuln | grep 8888静态 IP 设置 (Netplan)若需固定 Linux 服务器 IP编辑/etc/netplan/*.yamlnetwork: version: 2 renderer: networkd ethernets: enp3s0: # 这里换成你第一步找出的网卡名 dhcp4: no # 关闭自动获取 IP addresses: - 192.168.31.200/24 # 你想要固定的 IP 地址及子网掩码 routes: - to: default via: 192.168.31.1 # 你的网关地址通常是路由器 IP nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS 服务器应用配置sudo netplan apply。附录关于 WSL 的迁移参考注虽然本案例最终放弃了 WSL但以下步骤可用于Windows配置wsl运行Ubuntu基础安装与配置wsl以及Ubuntu的安装打开 PowerShell右键点击开始菜单 - 选择“Windows PowerShell (管理员)” 或 “终端 (管理员)”输入以下命令并回车wsl--install-d Ubuntu-22.04注意如果这是第一次安装 WSL安装完成后可能需要重启电脑。重启后Ubuntu 终端会自动弹出来继续安装。设置用户名以及密码等待 Ubuntu 终端提示你输入新的 UNIX 用户名Enter new UNIX username:。输入一个你喜欢的全英文小写用户名例如xiaoming回车。输入密码输入时屏幕不会显示任何字符这是正常的保护机制回车确认。设置完成后直接关闭这个 Ubuntu 的黑色终端窗口。关闭wsl回到 PowerShell输入以下命令确保 WSL 完全关闭防止文件被占用wsl--shutdown将Ubuntu迁移到D盘导出 Ubuntu 系统我们将刚刚装好的干净系统打包成一个文件放到 D 盘。在 PowerShell 中输入wsl--export Ubuntu-24.04 D:\env\linux\ubuntu-24.04.tar注销 C 盘的 Ubuntu这一步会将 Ubuntu 从 C 盘彻底删除释放 C 盘空间wsl --unregister Ubuntu-24.04你可以通过wsl -l -v命令检查此时应该没有任何发行版了。在 D 盘创建存放目录并导入首先在 D 盘建一个你喜欢的文件夹用来存放 WSL 的虚拟硬盘例如D:\WSL\Ubuntumkdir D:\WSL\Ubuntu然后将刚才导出的 tar 文件导入到这个新目录中并重新命名为Ubuntu-22.04wsl --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 中输入以下命令进入 Ubuntuwsl-d Ubuntu-24.04你会发现命令提示符变成了root你的电脑名。输入以下命令注意将你的用户名替换为你在之前步骤中设置的英文小写用户名echo -e [user]\ndefault你的用户名 /etc/wsl.conf退出并重启 WSL输入exit退出 Ubuntu回到 PowerShell。然后再次彻底关闭 WSL 以使配置生效wsl --shutdown