虚幻UE 插件-像素流送实现和优化

news2024/11/15 14:19:58

本笔记记录了像素流送插件的实现和优化过程。
UE version:5.3

文章目录

  • 一、像素流送
  • 二、实现步骤
    • 1、开启像素流送插件
    • 2、设置参数
    • 3、打包程序
    • 4、打包后的程序进行像素流参数设置
    • 5、下载NodeJS
    • 6、下载信令服务器
    • 7、对信令服务器进行设置
    • 8、启动像素流送
  • 三、优化
    • 1、鼠标显示问题
    • 2、像素流送后很卡


一、像素流送

虚幻引擎应用程序从一台电脑上流送到相同网络中的另一台电脑或移动设备上。
然后通过网页形式展示和控制UE应用程序。


二、实现步骤

1、开启像素流送插件

像素流送插件默认好像是关闭的,在插件列表里,我们需要打开重启。
在这里插入图片描述

2、设置参数

编辑(Edit) > 编辑器偏好(Editor Preferences…)> 关卡编辑器(Level Editor) > 播放(Play) > 额外启动参数(Additional Launch Parameters)
输入一下内容:

-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888

在这里插入图片描述
非必备:
如果移动设备需要使用,最好打开触控操作显示:(无触控设备显示要求可以不用)
在这里插入图片描述

3、打包程序

设置好参数后进行打包:
在这里插入图片描述

注意:最好打调试包,方便看日志,如果打发行包无法观察日志。

打包完成后的路径内容:
在这里插入图片描述

4、打包后的程序进行像素流参数设置

在这里插入图片描述
对快捷方式应用程序启动属性进行填写:
在这里插入图片描述
在项目的启动目录的后面加上一下内容:(记得空格)

  -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888

也就是和未打包前在UE程序内填写的内容一致
在这里插入图片描述

5、下载NodeJS

用于启动信令服务器必备的环境:
NodeJS网址:Node.js
选择自己合适的版本:(最好LTS长期稳定版)
在这里插入图片描述
然后后续安装好,这里不演示了。

6、下载信令服务器

在官方Github仓库里找到对应版本的信令服务器文件:
PixelStreamingInfrastructure
在这里插入图片描述
用Git命令下载也可以:

git clone --branch UE5.3 https://github.com/EpicGames/PixelStreamingInfrastructure.git

7、对信令服务器进行设置

右击安装必备的环境:

SignallingWebServer\platform_scripts\cmd\
一下都运行一波

在这里插入图片描述
在这里插入图片描述
然后发现在网页还是打不开:(发现可能是端口错误 )
在这里插入图片描述
调整端口:

PixelStreamingInfrastructure\SignallingWebServer\config.json

在这里插入图片描述

8、启动像素流送

开启信令服务器:
在这里插入图片描述
在这里插入图片描述
双击打开应用程序:
在这里插入图片描述
改成9999端口后打开网页:
在这里插入图片描述


三、优化

1、鼠标显示问题

在打包后鼠标可能显示会出现问题,建议打开软件鼠标:
在这里插入图片描述

2、像素流送后很卡

优化1:
在这里插入图片描述

-RenderOffScreen  关闭程序渲染,只有网页才显示画面
-log 打开运行日志输出,只有调试模式才生效

优化2:
在这里插入图片描述
传输质量和运行帧率调整:

Min QP:最小质量
Max QP:最大质量
越小质量越高,调整合适的质量
Max FPS:帧率越大越顺畅,且鼠标跟手程度取决于此参数。
这三个参数是最影响运行效果的。

修改后我们可以看到网址也发生变化:

http://127.0.0.1:9999/?MinQP=20&MaxQP=10
也可以在后面加上其他的参数:如关闭声音:PixelStreamingWebRTCDisableReceiveAudio
http://127.0.0.1:9999/?MinQP=40&MaxQP=30&PixelStreamingWebRTCDisableReceiveAudio

在这里插入图片描述
还可以给同局域网的主机分享:

http://192.168.1.25:9999/?MinQP=40&MaxQP=30&PixelStreamingWebRTCDisableReceiveAudio
192.168.1.25是本端主机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1411664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

路飞项目--03

总页面 二次封装Response模块 # drf提供的Response,前端想接收到的格式 {code:xx,msg:xx} 后端返回,前端收到: APIResponse(tokneasdfa.asdfas.asdf)---->{code:100,msg:成功,token:asdfa.asdfas.asdf} APIResponse(code101,msg用户不存…

数据结构排序算详解(动态图+代码描述)

目录 1、直接插入排序(升序) 2、希尔排序(升序) 3、选择排序(升序) 方式一(一个指针) 方式二(两个指针) 4、堆排序(升序) 5、冒…

精酿啤酒:啤酒花的选择与处理方法

啤酒花在啤酒的酿造过程中起着重要的作用,它不仅赋予啤酒与众不同的苦味和香味,还为啤酒的稳定性提供了帮助。对于Fendi Club啤酒来说,啤酒花的选择和处理方法更是重要。下面,我们将深入探讨Fendi Club啤酒在啤酒花的选择和处理方…

一文详解C++拷贝构造函数

文章目录 引入一、什么是拷贝构造函数?二、什么情况下使用拷贝构造函数?三、使用拷贝构造函数需要注意什么?四、深拷贝和浅拷贝浅拷贝深拷贝 引入 在现实生活中,可能存在一个与你一样的自己,我们称其为双胞胎。 相当…

【并发编程】 synchronized的普通方法,静态方法,锁对象,锁升级过程,可重入锁,非公平锁

目录 1.普通方法 2.静态方法 3.锁对象 4.锁升级过程 5.可重入的锁 6.不公平锁 非公平锁的 lock 方法: 1.普通方法 将synchronized修饰在普通同步方法,那么该锁的作用域是在当前实例对象范围内,也就是说对于 SyncDemosdnewSyncDemo();这一个实例对象…

el-table 动态渲染多级表头;一级表头根据数据动态生成,二级表头固定

一、表格需求: 实现一个动态表头,一级表头,根据数据动态生成,二级表头固定,每列的数据不一样,难点在于数据的处理。做这种表头需要两组数据,一组数据是实现表头的,另一组数据是内容…

【洛谷】P1135奇怪的电梯(DFS)

这题利用 dfs 解决,编程实现比较简单。 具体来说,每层楼有两种可能,上楼或下楼,因此可以形成一个以 a 楼为根的二叉树,因此只需一个 for 循环遍历某个父节点的两个子节点,之后递归就行。 易错点&#xff…

马尔可夫预测(Python)

马尔科夫链(Markov Chains) 从一个例子入手:假设某餐厅有A,B,C三种套餐供应,每天只会是这三种中的一种,而具体是哪一种,仅取决于昨天供应的哪一种,换言之&#…

灰度转换及修改尺寸

文章目录 主要内容一.OpenCVPycharm1.读取图片及灰度转换代码如下(示例): 2.修改尺寸代码如下(示例): 总结 主要内容 读取图片及灰度转换修改尺寸 一.OpenCVPycharm 1.读取图片及灰度转换 代码如下(示例&#xff09…

C++ 程序使用 OpenCV 生成两个黑色的灰度图像,并添加随机特征点,然后将这两个图像合并为一张图像并显示

文章目录 源码文件功能解读编译文件 源码文件 #include <iostream> #include <vector> #include <opencv2/opencv.hpp>std::vector<cv::KeyPoint> generateRandomKeyPoints(const cv::Mat& image, int numPoints) {std::vector<cv::KeyPoint&g…

Flume1.9基础学习

文章目录 一、Flume 入门概述1、概述2、Flume 基础架构2.1 Agent2.2 Source2.3 Sink2.4 Channel2.5 Event 3、Flume 安装部署3.1 安装地址3.2 安装部署 二、Flume 入门案例1、监控端口数据官方案例1.1 概述1.2 实现步骤 2、实时监控单个追加文件2.1 概述2.2 实现步骤 3、实时监…

体感大屏互动游戏开发

体感大屏互动游戏是一种结合了体感技术和大屏幕显示的游戏形式&#xff0c;旨在通过玩家的身体动作和互动&#xff0c;提供更加身临其境的游戏体验。这种类型的游戏常常采用各种体感设备&#xff0c;如深度摄像头、体感控制器、传感器等&#xff0c;使玩家能够通过真实的动作来…

C++算法学习心得六.回溯算法(3)

1.子集II&#xff08;90题&#xff09; 题目描述&#xff1a; 给定一个可能包含重复元素的整数数组 nums&#xff0c;返回该数组所有可能的子集&#xff08;幂集&#xff09;。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入: [1,2,2]输出: [ [2], [1], [1,2,2], …

centos 安装mysql5.7教程

一&#xff0c;配置yum mysql5.7安装源 配置yum mysql5.7安装源 yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 配置mysql5.7安装源成功 查看配置成功的安装源 yum repolist enabled | grep "mysql*" 执行后看到已配…

大模型|基础——长短时记忆网络

文章目录 LSTM遗忘门输入门整合信息特点实现神经单元的内部计算门控控制——可以动态选择信息在大数据量的情况下&#xff0c;可有效缓解梯度 LSTM 遗忘门 遗忘门&#xff0c;是否进行遗忘。 如果通过计算&#xff0c;计算出来的结果为0&#xff0c;就选择遗弃。 如果遗忘&…

14.4.2 Flash读取与修改数据库中的数据

14.4.2 Flash读取与修改数据库中的数据 计数器是网站必不可少的统计工具&#xff0c;使用计数器可以使网站管理者对网站的访问情况有一个清晰的了解。如果仅仅是统计首页访问量的话&#xff0c;用文本文件来存储数据就可以了&#xff0c;但如果统计的数据量比较大的话(如文章系…

MySQL和Redis的事务有什么异同?

MySQL和Redis是两种不同类型的数据库管理系统&#xff0c;它们在事务处理方面有一些重要的异同点。 MySQL事务&#xff1a; ACID属性&#xff1a; MySQL是一个关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;支持ACID属性&#xff0c;即原子性&#xff08;Ato…

【CANoe使用大全】——Graphics窗口

文章目录 1.Graphics作用2.Graphics窗口打开方式2.1.Analysis—>Graphics2.2.Measurement Setup ------> Graphics 3.变量添加4.Graphics窗口菜单栏介绍4.1. 单个测量光标4.2. 差分测量光标4.3.Y轴的显示方式4.3.1.Show Y-Axis of Selected Signal4.3.2.Show All Y-Axis4…

【java题解】题目 1779: 你的第一个程序;题目 1779: 你的第一个程序;题目 1173: 计算球体积

目录 题目 1779: 你的第一个程序 题目描述 输入格式 输出格式 样例输入 样例输出 题解 题目 1173: 计算球体积 题目描述 输入格式 输出格式 样例输入 样例输出 题解 题目 1267: AB Problem 题目描述 输入格式 输出格式 样例输入 样例输出 题解 从今天开始…

前端面试题-深拷贝浅拷贝-浏览器存储-原型链-闭包-call,bind,apply的区别

前端面试题-深拷贝浅拷贝-浏览器存储-原型链-闭包-call,bind,apply的区别 什么是深拷贝什么是浅拷贝cookie,sessionStorage和localStrorage的区别是什么什么是原型链prototype原型 作用域什么是闭包&#xff0c;闭包的作用场景是什么call bind和apply的区别 什么是深拷贝什么是…