23年补充,这篇文章21年发布的,当时只是为了帮自己记录一下,写的不太详细,后面也没关注过这篇文章,最近才发现有许多朋友对配置步骤的第四步有疑惑,特此上线解答。(两年前的步骤了,添加的cors包也是两年前的了,配置成功后也没在用过了,凭回忆找的cors包,朋友们权当一试)
cors包的链接: https://pan.baidu.com/s/1VOhOTOcMJAUMoj-X7wdnbQ?pwd=4zhp 提取码: 4zhp
cors包放到打包好的项目路径下:
/LinuxNoEditor/Samples/PixelStreaming(这里好像是项目名)/WebServers/Matchmaker/node_modules/
后续的应该没什么问题,我当时在自己的电脑和实验室的内网上都成功了的
有问题的话朋友们留言,我会尽力解答的
—————————————————————
8月份UE发布的4.27版本支持了LINUX系统下的像素流
像素流支持的操作系统
官网也没有linux上的详细步骤,根据在windows上的经验尝试在在Ubuntu20.04上搭建,走了很多弯路,一把心酸泪,特此把过程记录下来,希望对后来的朋友们有用。写的比较省略,适合已经在windows上搭建过的朋友(当然没有基础也不是看不懂)。

系统:ubuntu20.04
显卡驱动:nvidia 470.63.01
UE:4.27
CPU:Intel i7-10875H
GPU:RTX2060(像素流功能对GPU好像是有要求,最好是英伟达的显卡,我的符合条件就没仔细看)
像素流支持的图形硬件先把需要的参数命令行列出来,可直接跳到步骤处看
单实例配置参数
exe文件
-PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 -RenderOffScreen

多实例配置参数
run文件
./run1.sh --UseMatchmaker true --MatchmakerAddress 127.0.0.1 --MatchmakerPort 9999 --PublicIp 127.0.0.1 --HttpPort 80 --StreamerPort 8888
./run1.sh --UseMatchmaker true --MatchmakerAddress 127.0.0.1 --MatchmakerPort 9999 --PublicIp 127.0.0.1 --HttpPort 81 --StreamerPort 8887

exe文件参数
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreen
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8887 -RenderOffScreen

像素流配置步骤

1.安装nvidia驱动和nodejs
我就是在安装显卡驱动上走了很多弯路,总是在安装后系统黑屏,图形化界面丢失,最开始不会恢复图形化界面只能重装系统,再不然就是安装上了ue打不开无效安装,导致在这一步上浪费了很多时间。这里推荐一个教程,跟着步骤基本没问题。ubuntu20.04系统用.run文件安装nvidia显卡驱动
教程里这一步里的-no-opengl-files不要加上,加上就是无效安装了,安装上打不开ue。

在这里插入图片描述
如果安装上开机黑屏加光标闪烁,按ctrl+alt+f1(f2-f7都可以试一试),进入命令行,先用nvidia-smi查一下驱动装上了没,装上了的话那就是被驱动搞黑屏的,卸载驱动才能恢复图像化界面。这里放一个卸载教程。完全卸载nvidia驱动

2.项目设置
(此文主要记录配置像素流步骤,默认已经完成了在ubuntu上安装ue4.27以及新建项目)
2.1 启用插件
主菜单栏 > 编辑 > 插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.2 启用触摸(非必须,这个一般使用在可触屏设备上,比如手机,或者电脑可以触屏)
主菜单栏 > 编辑 > 项目设置
引擎 > 输入 类别下,找到并启用 Always Show Touch Interface
在这里插入图片描述
2.3 编辑器设置
主菜单 > 编辑 > 编辑器偏好设置
在关卡编辑器(关卡编辑器)> 播放(Play)中找到额外的启动参数(Additional Launch Parameters)设置,设置其值设为-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888

3.打包项目
文件(Files) >选择打包项目(Package Project) > Linux

4.添加cors包
5.matchmaker里的run.bat改写成.sh文件
6.运行run.sh文件

7.signalingwebserver 改写run.sh文件 (传递参数进去)
#!/bin/bash
pushd “ ( d i r n a m e " ( dirname " (dirname"{BASH_SOURCE[0]}” )"
bash setup.sh
pushd …/…
sudo node cirrus.js $@
popd
popd

8.运行run1.sh和run2.sh

bash -v ./run1.sh --UseMatchmaker true --MatchmakerAddress 127.0.0.1 --MatchmakerPort 9999 --PublicIp 127.0.0.1 --HttpPort 80 --StreamerPort 8888
bash -v ./run1.sh --UseMatchmaker true --MatchmakerAddress 127.0.0.1 --MatchmakerPort 9999 --PublicIp 127.0.0.1 --HttpPort 81 --StreamerPort 8887

9.运行可执行文件
./test1-80 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreen
./test1-81 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8887 -RenderOffScreen

10.打开浏览器进入
127.0.0.1:80(输入127.0.0.1默认是80端口)
127.0.0.1:81

出现端口被占用的情况
找到被占用的指定端口号所对应的进程信息并呈现,括号处填写对应要查找的端口号:
sudo lsof -i:(port)
关闭这个进程:
sudo kill (PID)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐