当前位置: 首页 > news >正文

【UE5】分分钟简单使用像素流云服务(Pixel Streaming)

【UE5】分分钟简单使用像素流云服务(Pixel Streaming)

前言

UE5的Pixel Streaming已经封装的很好,简单三步实现简单的服务搭建。

  1. 安装插件
  2. 打包项目
  3. 运行服务

注:实例平台为Windows

安装插件

编辑→插件→输入查询Pixel Streaming→选中→立即重启

插件安装完成。

打包项目

正常打包就可以

选择平台→Windows→打包项目

这里二进制文件配置建议选择开发

运行服务

  1. 建立启动快捷方式

    1).按住 Alt 键并拖动 运行文件(.exe) 文件即可在相同文件夹中新建一个快捷方式。

    2).右击快捷方式,点击属性。在 目标的末尾附加文本 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 并点击 确认。

  2. 运行服务

    在Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd点击运行run_local.bat

    (第一次运行需要联网,程序会自动下载配置文件;等程序下载完,运行上一步创建的快捷方式;建议用谷歌浏览器运行127.0.0.1)

到此简单的服务就搭建完成

运用进阶


一台像素流服务对应多台客服端配置方法

其实上面的方法搭建的服务器也可以实现一对多的服务配置,但是多台客服端其实看到的是同一个项目的画面。要想解决需要用到Pixel Streaming的Matchmaker来自动分配端口。

1. 启动Matchmaker

运行路径PixelStreaming\WebServers\Matchmaker\platform_scripts\cmd 下的run.bat。这里一次运行要跑一会。

2. 复制推流程序

复制Samples\PixelStreaming\WebServers 路径下的SignallingWebServer文件夹,要有多少个实例就要有多少多少份

示例图片复制了三份,后面标准的是端口好方便记忆

3. 配置文件设置

每一个复制SignallingWebServer文件夹里都有config,需要对其进行设置

字段说明
UseMatchmaker开启Matchmaker服务
HttpPort分配的端口好,会在后面的网页地址里体现
StreamerPort像素流端口,这里的端口号要和前面的启动快捷方式里的一致(PixelStreamingPort不再是8888)
SFUPort这个每一个配置都要不一样,不然不能加入到Matchmaker服务里

4. 快捷方式的复制编辑

这里同样是要有多少个实例就要有多少多少份

快捷方式的目标配置demo

对应的801端口

FullScreeDemo060500\Windows\test_02.exe -AudioMixer -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=9001

对应的802端口

FullScreeDemo060500\Windows\test_02.exe -AudioMixer -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=9002

同理803

5. 服务的启动

1). 先启动PixelStreaming\WebServers\Matchmaker\platform_scripts\cmd里的run.bat

2). 然后分别启动SignallingWebServer801–803文件夹里的run_local.bat(地址在platform_scripts\cmd)
3). 然后在分辨打开三个快捷方式

这里服务就算开启完成了,当我们访问127.0.0.1时,服务会自动分配地址

6. 其他的说明

下面是Matchmaker服务

当启动的像素流服务(也就是SignallingWebServer的run_local.bat)正常加入时出现

13:45:23.874 Adding connection for 127 with playerConnected: false

反之则没有加入,可以检查一下配置文件

当启动快捷方式时出现

13:47:51.016 Cirrus server 127.0.0.1:801 ready for use

当有客服端读取时出现

13:49:09.560 Client connected to Cirrus server 127.0.0.1:801

当关闭快捷方式打开的程序时

Cirrus server 127.0.0.1:801 no longer ready for use

注意:这里在快捷键配置的时候,如果你-PixelStreamingIP=127.0.0.1的话,访问不要用127.0.0.1,可以用localhost或者直接用IP地址访问。如果用127.0.0.1访问,服务不会自动分配端口。反之亦然

常见问题

鼠标需要按Esc的问题

鼠标需要按Esc才能进入或退出播放器控件的控制。

修改方法:

方法一:app.js文件提供部分JavaScript配置参数(app.js的位置Samples\PixelStreaming\WebServers\SignallingWebServer\scripts)

在所在位置添加(系统默认的是ControlSchemeType.LockedMouse)

 inputOptions.controlScheme = ControlSchemeType.HoveringMouse;

方法二:官方的指导方法

在前端页面进行修改,系统默认调用的是player.html(文件位置:Samples\PixelStreaming\WebServers\SignallingWebServer\Public)

在所在位置添加

<script>
inputOptions.controlScheme = ControlSchemeType.HoveringMouse;
</script>

app.js 文件提供部分JavaScript配置参数(可在自定义播放器页面覆盖此类参数),以控制播放器控件对用户交互响应的方式。inputOptions 对象会公开以下属性:

属性默认值描述
controlSchemeControlSchemeType.LockedMouse决定播放器与控件交互时播放器控件是否捕捉并锁定鼠标。接受以下数值:ControlSchemeType.LockedMouse - 启用此控制模式时,单击播放器控件将使其捕捉并锁定鼠标光标。鼠标的任何移动都会立即传递到虚幻引擎程序中的输入控制器。利用此操作,用户拖动鼠标即可移动和旋转相机。按下 Esc 键即可使光标脱离播放器控件的控制。ControlSchemeType.HoveringMouse - 启动此控制模式时,鼠标光标将悬停在播放器控件之上而不与其交互。要将鼠标移动发送到虚幻引擎程序的输入控制器,用户需要按住鼠标左键。
suppressBrowserKeystrue启用此设置后,播放器控件将拦截函数键(F1F12)和 Tab 键,并将这些按键事件传递到虚幻引擎程序,而不允许浏览器对其进行正常处理。 也就是说,启用该设置后,按 F5 键将不会刷新浏览器中的播放器页面。相反,该事件会被传递到虚幻引擎程序,其拥有的是切换视图显示着色器复杂度的常规功能。
fakeMouseWithTouchesfalse启用此选项时,如用户正使用触摸屏(如智能手机或平板电脑)查看设备上的流送,此设置将使虚幻引擎程序将单指触摸事件解译为鼠标单击和拖动事件。启用此设置后,移动设备的用户便能对虚幻引擎程序进行部分控制,即使应用程序的输入控制器未专门处理触摸输入事件时也同样如此。

引用自ue5官方文档

系统鼠标显示问题

app.js默认是将系统鼠标隐藏的

只需要将styleCursor=‘default’;

双鼠标问题

这里Pixel Streaming提供了解决方法

Default Cursor Class Name设置成HiddenCursor

隐藏启动界面自动播放

app.js 有三个位置需要修改

  1. PlayStream()方法第二个if判罚加false

  1. showPlayOverlay()方法后加

        webRtcPlayerObj.video.muted = true;setTimeout(() => { playStream();}, 1);
    
  2. start()方法后加

 if (!connect_on_load || is_reconnection) {invalidateFreezeFrameOverlay();shouldShowPlayOverlay = true;resizePlayerStyle();connect();startAfkWarningTimer();} else {connect();}
       invalidateFreezeFrameOverlay();shouldShowPlayOverlay = true;resizePlayerStyle();connect();startAfkWarningTimer();} else {connect();}
#### 前端与UE5的通信

相关文章:

【UE5】分分钟简单使用像素流云服务(Pixel Streaming)

【UE5】分分钟简单使用像素流云服务&#xff08;Pixel Streaming&#xff09; 前言 UE5的Pixel Streaming已经封装的很好&#xff0c;简单三步实现简单的服务搭建。 安装插件打包项目运行服务 注&#xff1a;实例平台为Windows 安装插件 编辑→插件→输入查询Pixel Strea…...

2021 年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题

2021 年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题 一. 逻辑推理&#xff1a;第 26~55 小题&#xff0c;每小题 2 分&#xff0c;共 60 分。下列每题给出的 A、B、C、D、E 五个选项中&#xff0c;只有一项是符合试题要求的。 26.哲学是关于世界观、方法论的学问。哲…...

【算法】【算法杂谈】两个排序数组中找第k小的数

目录 前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本 思考感悟写在最后 前言 当前所有算法都使用测试用例运行过&#xff0c;但是不保证100%的测试用例&#xff0c;如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识&#xff01; 问题介…...

ABAP 新语法--Open SQL(草稿)

1. 常量 1.1 常量赋值 常量字段可以用来为内表中的部分字段赋初始值&#xff0c;字段类型和长度依据输入常量的值决定 SELECTmara~matnr, " 物料号mara~matkl, " 物料组mara~mtart, " 物料类型 AS lkenz, " 删除标识&#xff0c;常量空字符串123 AS fla…...

2023最新常用开发网站汇总

1、在线画图工具 • 在线画图工具ProcessOn&#xff1a;https://www.processon.com/ • 在线画图工具draw.io&#xff1a;https://app.diagrams.net/ • 在线思维导图工具&#xff1a;http://www.mindline.cn/webapp • PlantUML在线编辑器&#xff1a;http://haha98k.com/…...

ELK 日志采集使用

1.安装ELK整体环境 1.1.安装docker环境 Docker 最新版Version 20.10安装_docker最新版本是多少_猿小飞的博客-CSDN博客 1.2.先安装docker compose 安装docker compose_猿小飞的博客-CSDN博客 1.3.使用 Docker Compose 搭建 ELK 环境 1.3.1.编写 docker-compose.yml 脚本启…...

深入剖析RocketMQ源码:消息传递的奥秘

RocketMQ是一款高性能、高可靠性、可扩展性强的分布式消息中间件,能够有效架构企业级分布式应用。由于其广泛应用和优秀表现,越来越多的开发者对RocketMQ的底层实现产生了浓厚的兴趣。本文将深入剖析RocketMQ的消息传递奥秘,帮助大家了解RocketMQ的底层实现原理,进一步掌握…...

Protocol https not supported or disabled in libcurl

原因 curl默认安装完后是只支持http协议而不支持https协议的。 curl -V查看当前curl支持哪些协议&#xff1a; [rootlocalhost /]# curl -V curl 7.19.4 (x86_64-unknown-linux-gnu) libcurl/7.19.4 OpenSSL/1.0.2k zlib/1.2.11 Protocols: tftp ftp telnet dict http fil…...

一步步搭建基于 ts + express + prisma + mongodb + zod 后端服务

环境&#xff1a; windows11、node 18.16.0 、pnpm 1、在合适位置&#xff0c;代开 vscode , 终端执行 mkdir miaooo-backend && cd miaooo-backend && npm init -y 。 创建一个名为一个 miaooo-backend 的项目&#xff0c;并且进入项目 执行 npm 默认初始化。…...

深入理解深度学习——Transformer:编码器(Encoder)部分

分类目录&#xff1a;《深入理解深度学习》总目录 Transformer中的编码器不止一个&#xff0c;而是由一组 N N N个编码器串联而成。一个编码器的输出作为下一个编码器的输入。在下图中有 N N N个编码器&#xff0c;每一个编码器都从下方接收数据&#xff0c;再输出给上方。以此…...

【图像处理】基于收缩系数的粒子群优化和引力搜索算法的多级图像阈值研究【CPSOGSA】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

PortSwigger web缓存中毒(Cache Poisoning)

一、什么web缓存中毒&#xff1f; Web缓存中毒&#xff08;Web Cache Poisoning&#xff09;是一种攻击技术&#xff0c;攻击者通过操纵Web应用程序的缓存系统&#xff0c;将恶意或欺骗性内容注入到合法的缓存中&#xff0c;以欺骗用户或绕过安全控制。 Web缓存中毒的原理是利用…...

msf渗透练习-生成木马控制window系统

说明&#xff1a; 本章内容&#xff0c;仅供学习&#xff0c;不要用于非法用途&#xff08;做个好白帽&#xff09; &#xff08;一&#xff09;生成木马 命令&#xff1a; msfvenom -p windows/meterpreter/reverse_tcp LHOST192.168.23.46 LPORT4444 -e x86/shikata_ga_nai -…...

【c++】组合类+继承情况下构造顺序

组合类继承情况下构造顺序 构造顺序同普通继承&#xff0c;先父后子&#xff0c;内部类是最老的&#xff08;最先调用构造的&#xff09;。 示例代码 class A { public:A(int a 0):_a(a){cout << "A()" << endl;}~A(){cout << "~A()" …...

盛元广通生物化学重点实验室化学品信息化安全管理系统

生物化学重点实验室是国家基础研究和高技术研究的重要基地&#xff0c;是培养和造就高层次创新型人才的重要基地。为保障实验室化学品安全使用&#xff0c;实验人员可通过现场或移动端管理系统实现化学品安全使用与存储。盛元广通生物化学重点实验室化学品信息化安全管理系统具…...

1.知识积累

&#xff08;1&#xff09;build_chain.sh 脚本&#xff1a; build_chain.sh 脚本是 FISCO BCOS 提供的一个工具脚本&#xff0c;用于自动化构建 FISCO BCOS 联盟链。它可以帮助您快速搭建和配置多节点的区块链网络。 具体而言&#xff0c;build_chain.sh 脚本的作用包括以下…...

20230612----重返学习-函数式编程-数据类型检测-网络层优化

day-090-ninety-20230612-函数式编程-数据类型检测-网络层优化 函数式编程 函数式编程 && 命令式编程 函数式编程:把具体的操作过程“封装”到一个函数中,我们无需关注内部是如何处理的(How),只需要关注处理的结果(What)即可; // 如果是依次迭代数组每一项&#xff0c…...

Java实现删除txt第一行

如果您的文件很大,则可以使用以下方法在不使用临时文件或将所有内容加载到内存中的情况下执行删除. public static void removeFirstLine(String fileName) throws IOException { RandomAccessFile raf new RandomAccessFile(fileName, "rw"); …...

Go语言函数式编程库samber/lo

Go语言函数式编程库samber/lo 开发中&#xff0c;我们经常遇到一些操作&#xff0c;比如获取一个map的所有key&#xff0c;所有value&#xff0c;判断一个字符串是否出现在slice 中&#xff0c;slice中是否有重复元素等等。Go语言没有这样的操作&#xff0c;标准库也不提供。…...

自定义杰理AC63系列BLE数据发送函数

自定义BLE数据发送函数&#xff0c;就是将数据发送、数据发送前的检查、以及conn_handle查询等封装在一起&#xff0c;脱离SDK中的相关回调函数&#xff0c;在程序任意位置实现发送数据功能。 1. SDK中的BLE数据发送函数 BLE的数据发送函数定义在apps\common\third_party_pro…...

Jenkins结合gitee自动化部署SpringBoot项目

安装 安装教程 插件选择 Gitee Plugin 配置 源码管理 填写源码地址 注意&#xff1a;请确保genkins所在的服务器有权限git拉取远程仓库代码&#xff0c;如果不可以请参考ssh配置centos 配置ssh拉取远程git代码 源码管理 构建触发器 1.勾选Gitee webhook 触发构建 2.生成we…...

声强级和声压级之间的转换举例

声强级和声压级之间的转换举例 在学习声学时候&#xff0c;经常会遇到声强级和声压级的概念&#xff0c;而且它们的单位都是分贝(dB),很容易混淆这两个概念。而且&#xff0c;更容易在计算时候&#xff0c;不知如何转换&#xff0c;如何使用&#xff0c;本文将举例说明两者之间…...

16 粒子滤波

文章目录 16 粒子滤波16.1 背景介绍16.1.1 Particle Filter是什么&#xff1f;16.1.2 Patricle Filter的状态如何转移&#xff1f;16.1.3 如何通过采样求解Particle Filter 16.2 重要性采样16.2.1 重要性采样方法16.2.2 Sequential Importance Sampling16.2.3 Resampling16.2.4…...

【appium】appium自动化入门之API(下)——两万字API长文,建议收藏

目录 Appium API 前言 1.contexts &#xff08;返回当前会话中的上下文&#xff0c;使用后可以识别 H5 页面的控件&#xff09; 2.current_context &#xff08;返回当前会话的当前上下文 &#xff09; 3. context &#xff08;返回当前会话的当前上下文&#xff09; 4.find_e…...

开发改了接口,经常忘通知测试的解决方案!

目录 前言&#xff1a; Apifox解决方案 Apifox对此给出的解决方案是&#xff1a; 用Apifox怎么处理接口变更 接口代码实现逻辑修改 接口参数修改 前言&#xff1a; 在开发过程中&#xff0c;接口变动十分频繁&#xff0c;测试人员没有及时获得相关通知的情况也很普遍。这…...

Beyond Compare 4 无法打开

解决办法&#xff1a; 1.修改注册表。WINR呼出开始菜单&#xff0c;在搜索栏中输入 regedit&#xff0c;点击确定。 2.删除项目&#xff1a;\HKEY_CURRENT_USER\Software\ScooterSoftware\Beyond Compare 4\CacheId 根据这个路径找到cacheid 右击删除掉就可以...

MySQL高级数据操作

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;MySQL &#x1f96d;本文内容&a…...

硬件设计电源系列文章-DCDC转换器基础知识

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示&#xff1a;这里可以添加技术概要 本文主要接着上篇&#xff0c;上篇文章主要讲述了LDO的相关基础知识&#xff0c;本节开始分享DCDC基础知识 整体架构流程 提示&#xff1a;这里可以添加技术整体架构 以下是…...

XdsObjects .NET 8.45.1001.0 Crack

XdsObjects 是一个工具包&#xff0c;允许开发人员使用 IHE XDS 和 XDS-I 配置文件开发应用程序&#xff0c;只需花费最少的时间和精力&#xff0c;因为遵守配置文件和 ebXML 规则的所有艰苦工作都由该工具包处理。 它为所有角色提供客户端和服务器支持&#xff0c;包括&#…...

数据安全--17--数据安全管理之数据传输

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/131061729 一、数据传输概述 数据传输有两个主体&#xff0c;一个是数据发送方&#xff0c;另一个是数据接收方。数据在通过不可信或者较低安全性的网络进行传输时&#xff0c;容易发生数据被窃取、伪…...

网站开发软件 d/如何在网上推广自己的产品

文章目录ARM裸机开发&#xff1a;主频与时钟一、时钟系统1.1 外部时钟电路1.2 7路PLL时钟源1.3 时钟树概览二、时钟配置2.1 内核时钟设置2.2 PFD时钟设置2.3 AHB、IPG 和 PERCLK 根时钟设置三、配置代码ARM裸机开发&#xff1a;主频与时钟 本章了解一下 IMX 的系统时钟主频配置…...

wordpress 安装插件 ftp/网购平台推广方案

前提条件 如果没有安装office的话&#xff0c;需要安装引擎 安装了office就不用安装引擎 连接数据库 Dim plMydb As Microsoft.Office.Interop.Access.Dao.DatabaseplMydb DAODBEngine_definst.OpenDatabase(ppDataBase) 备份数据库 AccessDB.CompactDatabase(iMDBFile, iTMPF…...

建设摩托车官网中国官网报价大全/太原seo关键词优化

<meta http-equiv"X-UA-Compatible" content"IEEmulateIE7"/>转载于:https://www.cnblogs.com/xjt360/p/3604410.html...

wordpress修改文章字体大小/搜狗链接提交入口

为什么80%的码农都做不了架构师&#xff1f;>>> 风波一天 上午支付出了问题&#xff0c;在问题之前把付款码项目测试环境跟踪任务接了过来&#xff0c;中午没出门&#xff0c;点了外卖&#xff0c;给弄好了下午本想来公司拿个东西回家&#xff0c;发现商品上架出了…...

直播视频素材/seo关键词排名技术

磁盘管理&#xff1a;RAIDRedundent Aarry of Inexpensive DisksRedundent Aarry of Indepedent Disks目的&#xff1a;高性能(读、写)、可靠(冗余)级别&#xff1a;Level&#xff0c;用于描述磁盘不同组合逻辑Raid0: 条带Raid1: 镜像Raid10就是将Raid1和Raid0按某种方式连接起…...

杭州亚运村建设指挥部网站/个人怎么开跨境电商店铺

刚开始学习C#的时候就写过了&#xff0c;直接给地址了&#xff1a; 委托、匿名函数、Lambda表达式和事件的学习 委托学习续&#xff1a;Action、Func和Predicate...