windos/ubuntu20.4下UE4.27.2像素流送

windows/ubuntu20.4下UE4.27.2像素流送

像素流送技术可以将服务器端打包的虚幻引擎应用程序在客户端的浏览器上运行,用户可以通过浏览器操作虚幻引擎应用程序,客户端无需下载虚幻引擎,本文实现两台机器通过物理介质网线实现虚幻引擎应用程序的流送。(本文感谢程同事、王同事的鼎力相助

一、本地服务器虚幻引擎与打包应用程序设置

1.在虚幻编辑器中启用像素流插件,然后重启编辑器。

在这里插入图片描述

2.创建流送项目,修改项目设置。

从主菜单中选择 编辑> 编辑器偏好>关卡编辑器>播放>额外启动参数设置,设置额外启动参数值为“-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888”

3.项目打包。

4.设置打包程序的“属性”在 项目名称末尾附加文本 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888请添加图片描述

注: -RenderOffScreen 参数。如果虚幻引擎应用程序窗口意外被最小化,像素流送视频和输入流送将停止工作。-RenderOffScreen 能以headless模式运行应用程序,不带可见窗口,即后台运行。

二、启动信令服务器

信令服务器起桥梁作用,在虚幻引擎程序和客户端浏览器之间建立点对点连接。

在打包好的虚幻引擎程序文件夹中,在Samples/PixelStreaming/WebServers/SignallingWebServer 中找到信令服务器的路径。

注:官网给的是引擎安装文件夹的sample,因对不同的应用程序打包配置需求不一致,最好是在打包好的应用程序下配置信令服务器(此处是,王同事给的建议

1.在 SignallingWebServer\platform_scripts\下运行cmd\setup.ps1(linux运行bash\setup.sh)。会安装所有需要的依赖项,setup脚本内容就是下载node、npm、express等依赖,并配置与更新环境变量,检查。 显示蓝框中的所有依赖,即下载完成。

请添加图片描述

注:若报错“node_model”下…无法找到或者无法中创建,手动删掉该文件夹,重新执行命令即可。因首次执行会创建“node_model”文件夹,后面某些错误导致无法成功下载依赖,该文件夹会一直存在。(此处是王同事给的建议

2.运行 SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1 开启信令服务器,出现绿框中三行即成功。

WebSocket listening to Streamer connections on :8888
WebSocket listening to Players connections on :80
Http listening on *: 80

3.运行 SignallingWebServer\platform_scripts\cmd\run_local.bat建立服务器端打包的虚幻引擎应用程序与客户端浏览器的连接。注:官网提供的信令服务器是有加载在线网页js插件的,因此本地服务器需要连互联网(也可把引用的js下载到本地,从本地引用无需联连外网)。

4.运行服务器端打包的虚幻引擎应用程序,如运行mypro3.exe。

注:cirrus.js文件中可配置修改传送端口,客户端ip

请添加图片描述在这里插入图片描述

三、连接服务器端打包的虚幻引擎应用程序与客户端浏览器

1.浏览器导航中输入“127.0.0.1:80”,此处使用的是本地的浏览器与默认端口与IP。

在这里插入图片描述

2.若,客户端在另外设备上,只需保证本地服务器与客户端在同一网段(网线直连两个设置同一网段IP,或在同个无线网络都可)

本文是左边的笔记本作为客户端浏览器,右边的笔记本作为服务器端,如下图:

在这里插入图片描述


在这里插入图片描述在这里插入图片描述


注:
在这里插入图片描述

对于UE4官网给出的先决条件,

1.GPU硬件要求很高,尝试过在Ubuntu20.04(双NVIDDIA TITANRTX)流送,环境都搭建好,驱动也升级到最新,报错如下“找不到匹配的GPU”,发现通过限速流启动的程序根本没把独显跑起来,显卡是凉的。后续发现是升级英伟达显卡驱动后,有一个服务没打开,打开后TITANRTX才跑起来,此问题得以解决(此问题是程同事解决)。

在这里插入图片描述

2.安装nodejs,没必要提前安装,因在执行setup.sh/setup.ps1脚本时,会把缺少的依赖都装好(各个依赖的版本都是匹配的,不会出现不兼容)。我们尝试在提前装好node的情况下,反而在执行setup装依赖的过程中多处报错,因为自行安装的node一般是最新版本,会与setup中安装的其他依赖等版本不匹配。

3.停止其他web服务器也没必要,保证80、8888端口不被占用即可。

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

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

相关文章

企业出海-如何保护客户账户安全?

近年来国内企业竞争日益激烈,许多企业在这般环境下难以持续发展。那么该如何获得业务的可持续性增长,如何获取更多的客户的同时开阔公司的视野?出海便是如今帮助国内企业能快速发展壮大的潮流之一,摆脱了局限于国内发展的束缚奔向…

单调栈分类、封装和总结

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 通过枚举最小(最大)值不重复、不遗漏枚举所有子数组 C算法:美丽塔O(n)解法单调栈左右寻找第一个小于maxHeight[i]的left,right,[left,right]直接的高度都是maxHeight[i] 可以…

第十二章 异常-Exception

一、异常的概念(P444) Java 语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常事件可分为两大类 (1)Error(错误…

OpenCV-Python(19):Canny边缘检测

目录 学习目标 Canny 边缘检测原理 1.噪声抑制(噪声去除) 2.梯度计算 3.非极大值抑制 4.双阈值检测(滞后阈值) 5.边缘连接 Canny 边缘检测步骤 Canny 边缘检测的OpenCV实现 不同阈值的边缘检测效果 学习目标 了解Canny边缘检测的概念学习掌握函数cv2.Canny()的用法 …

【星海出品】Keepalived 使用基础案例 (二)

keepalived 使用 [rootmaster ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs { //全局配置notification_email { //定义报警收件人邮件地址acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_…

laravel 对接支付,本地穿透问题

本地穿透有好多工具,参考链接:https://zhuanlan.zhihu.com/p/339923535 我这边是用的 NATAPP 官网:https://natapp.cn/ 客户端下载:https://natapp.cn/# NATAPP1分钟快速新手图文教程:https://natapp.cn/article/n…

内部FLASH模拟EPPROM

本例程基于STM32F103ZET6 FLASH大小为512K。 介绍FLASH 不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了 1024K 字节。我们的精英 STM32 开发板选择的是 STM32F103ZET6 的 FLASH 容量为 512K 字节&#xff0…

【INTEL(ALTERA)】 quartus 在 F-Tile 以太网多速率英特尔® FPGA IP同时启用了自动协商和链路训练时生成严重警告

说明 由于英特尔 Quartus Prime 专业版软件版本 23.4 存在问题,包含启用 ANLT 的 F-Tile 以太网多速率英特尔 FPGA IP的动态重新配置项目将生成严重警告。 这些警告的形式如下所示: 严重警告 (22976):IP 或 IP 缺少动…

记录 | ubuntu安装jsoncpp

两种方式,一种是源码编译,另一种是 apt 安装 源码编译 # 下载源码包 git clone https://github.com/open-source-parsers/jsoncpp.gitcd jsoncppmkdir build cd build# 编译安装 cmake .. make -j32 make install apt 安装 sudo apt update sudo apt…

【宜搭】低代码开发师中级证书选择题库

题目正确选项内容正确选项1关联表单组件在开启多选模式的情况下,也可以进行数据填充。错误2普通表单中组件的唯一标识可以通过双击唯一标识进行修改。错误3以下哪个函数可以正确获取成员的工号?USERFIELD( 成员 ,"businessWorkNo")D4 以下哪个不属于报表页面中的布…

vue中的data与_data的关系是什么

vue中的data与_data的关系是什么 -代理 在 Vue 实例中,data 属性是用户定义的用于存储数据的对象,而 _data 是 Vue 内部用于存储数据的对象。它们之间的关系是 Vue 实例的 data 属性实际上是对 _data 的代理。 当你在创建 Vue 实例时,Vue 会…

drf请求与响应

一 请求与响应 1.1 Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。 REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Type指…

POP3协议详解

基本介绍 POP3是一种用于从邮件服务器获取电子邮件的协议。它允许邮件客户端连接到邮件服务器,检索服务器上存储的邮件,并将邮件下载到客户端设备上。POP3的工作原理如下: 连接和身份验证: 邮件客户端通过TCP/IP连接到邮件服务器…

MATLAB Mobile - 使用预训练网络对手机拍摄的图像进行分类

系列文章目录 前言 此示例说明如何使用深度学习对移动设备摄像头采集的图像进行分类。 在您的移动设备上安装和设置 MATLAB Mobile™。然后,从 MATLAB Mobile 的“设置”登录 MathWorks Cloud。 在您的设备上启动 MATLAB Mobile。 一、在您的设备上安装 MATLAB M…

qt项目-《图像标注软件》源码阅读笔记-Command类绘图及其子类

目录 1. Command 概览 2. Command2D 1. Command 概览 功能:命令栈基类,用来实现撤销和重做功能。 其子类Command2D和Command3D都是实现父类方法,除了构造函数没有自己的独有方法。 字段: redoCommands:存储re…

【Python百宝箱】模型透明化:机器学习解释性方法深度解读

深入解析机器学习模型:解释性方法全景 前言 在机器学习领域,复杂的模型往往被视为“黑盒”,使得模型的预测结果难以理解。然而,随着对模型可解释性的需求不断增长,解释性方法应运而生,为我们提供了一扇了…

SpringBoot3-数据访问

文章目录 整合SSM场景1. 创建SSM整合项目配置数据源3. 配置MyBatis4. CRUD编写5. 自动配置原理6. 快速定位生效的配置7. 扩展:整合其他数据源1. Druid 数据源 附录:示例数据库 整合SSM场景 SpringBoot 整合 Spring、SpringMVC、MyBatis 进行数据访问场景…

Django 安装

Django 安装 在安装 Django 前,系统需要已经安装了 Python 的开发环境。 如果你还没有安装 Python,请先从 Python 官网 https://www.python.org/ 下载并安装最新版本的 Python。 Django 安装也很简单使包管理工具 pip在终端中就可以了: p…

变量覆盖漏洞 [BJDCTF2020]Mark loves cat 1

打开题目 我们拿dirsearch扫描一下看看 扫描得到 看见有git字眼&#xff0c;那我们就访问 用githack去扒一下源代码看看 可以看到确实有flag.php结合index.php存在 但是当我去翻源代码的时候却没有翻到 去网上找到了这道题目的源代码 <?phpinclude flag.php;$yds &qu…

JWT是什么?它有什么用?

1. 什么是 JWT&#xff1f; JWT是 JSON Web Token 的缩写&#xff0c;通过数字签名的方式&#xff0c;以 JSON 对象为载体&#xff0c;在不同的服务器终端之间安全传输的信息。 2. JWT 有什么用&#xff1f; JWT 最常见的场景就是授权认证&#xff0c;一旦用户登录&#xff…