【虚幻引擎】UE4/UE5像素流在广域网上(云)部署(多实例)

news2025/1/16 3:44:07

一、选择云服务器

         每个云平台都提供许多预设的镜像选择,由于像素流技术目前只支持Windows操作系统,所以我们需要选择Windows Server的镜像,2012/2016/2019皆可。我们这里选择了Windows Server 2016 R2 简体中文版的镜像,之所以选择这个版本主要原因AWS 中国直接提供了这个版本下显卡的GRID驱动,省去了去Nvidia网站申请试用的麻烦。另外Community AMI 里有Windows Server with Tesla Driver的镜像,但这里的驱动不是GRID驱动,所以还是需要按照下文安装GRID驱动。

广域网部署与云部署的区别在于本地广域网需要自己有公网IP且在路由器配置中设置端口映射等,而云部署不需要。所以这里我们选择了阿里云服务器来实现像素流的云部署。

二、阿里云服务器

配置云服务器端口 ,开放80端口访问,并将需要被访问和准备推流的端口都进行开放处理,我开放了60-90等等

 三、选择UE的相关文件上传到云服务器上

  可以选择上传整个Engine文件夹

 也可以选择上传Engine\Source\ThirdParty\WebRTC和Engine\Source\Programs\PixelStreaming\WebServers下面的Matchmaker和SignallingWebServer

 

 

 三、配置上传到云服务器的相关参数

首先配置WebRTC里面的Start_AWS_TURNServer.ps1,如下,修改LoaclIP为127.0.01。

然后配置信令服务器, SignallingWebServer里的Start_AWS_WithTURN_SignallingServer.ps1,将IP填写为公网IP,比如是$PublicIp = "12.34.56.78"

 

然后配置分配服务器,Matchmaker里面的matchmaker.js,这里的端口与上面配置阿里云入方向策略的端口一致。

 复制一个信令服务器,进行多实例操作

 

 配置第一个信令服务器,开启分配服务器,配置config.json中UseMatchmaker:true,配置cirrus.js如图示

 配置第二个信令服务器,开启分配服务器,配置config.json中UseMatchmaker:true,配置cirrus.js如图示

 

 

 启动服务器,依次执行,启动Start_AWS_TURNServer.batStartSTUNServer.batMatchemaker\run.bat,以及两个信令的runAWS_WithTURN.bat

 

四、配置本地电脑UE程序

  • 创建两个推流快捷方式,IP为上文公网IP,端口为信令配置的端口,启动参数如下
  • -AudioMixer - PixelStreamingIP=12.34.56.78 -PixelStreamingPort=7777 -RenderOfScreen
  • -AudioMixer - PixelStreamingIP=12.34.56.78 -PixelStreamingPort=6666 -RenderOfScreen

 运行两个程序,到此即可。

 五、遇到的无法连接的一些坑

  • 环境配置要正确,刚买的服务器可能没有UE的一些配置环境,比如缺少.NET Framework3.5,NodeJS等配置环境
  • 虚幻引擎提供的启动脚本中,是通过Invoke-WebRequest的方式来自动获得公网或者局域网IP地址,有时候并不能正确获得,这时候你可以在脚本中手工指定正确的公网IP或者局域网IP的方式来设置。
  • 启动TURN服务的情况没有成功启动

  • 没有使用云服务器的用户,需要用到路由器的用户需要配置NAT进行映射检查

 

 

 

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

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

相关文章

【SSM整合】对Spring、SpringMVC、MyBatis的整合,以及Bootstrap的使用,简单的新闻管理系统

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Spring】 🥭本文内…

代码随想录第53天|● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

1143.最长公共子序列 和718.最长重复子数组类似 包括二维数组初始化这些 不同之处在于递推公式主要就是两大情况: text1[i - 1] 与 text2[j - 1]相同,text1[i - 1] 与 text2[j - 1]不相同 如果text1[i - 1] 与 text2[j - 1]相同,那么找到了…

Windows/Linux日志分析

Windows日志分析 Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。 Windows主要有以下三类日志记录系统事件:应用程序日志…

【链表】leetcode707.设计链表(C/C++/Java/Js)

leetcode707.设计链表1 题目2 思路3 代码3.1 C版本3.2 C版本3.3 Java版本3.3.1 单链表3.3.2 双链表3.4 JavaScript版本4 总结1 题目 题源链接 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值&…

2022年地图产业研究报告

第一章 行业概况 地图是按照一定法则,有选择地以二维或多维形式与手段在平面或球面上表示地球(或其它星球)若干现象的图形或图像,它具有严格的数学基础、符号系统、文字注记,并能用地图概括原则,科学地反映…

canvasjs javascript-charts 3.7.3 Crack

canvasjs javascript-charts/ 3.7.3 具有 30 多种图表类型的 JavaScript 图表库 具有 10 倍性能和 30 多种图表类型的 JavaScript 图表和图形库。核心 JavaScript 图表库是独立的,但也带有流行框架的组件,如 React、Angular、Vue 等。图表响应迅速&#…

14、RH850 F1 RAM存储器介绍

前言: RAM——程序运行中数据的随机存取(掉电后数据消失)整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段,此专栏会有针对SPI的工作原理的详细介绍。 一、…

性能优化系列之如何选择合适的WebView内核?

文章の目录一、iOS UIWebView1、优点2、不足二、iOS WKWebView1、优势2、不足三、Android WebKit 和 Chromium四、Android 第三方1、X5 内核五、选型建议写在最后一、iOS UIWebView 1、优点 从 iOS 2 开始就作为 App 内展示 Web 内容的容器排版布局能力强 2、不足 内存泄露…

将两个对象以指定方法按指定轴对齐的DataFrame.align()方法

【小白从小学Python、C、Java】【计算机等级考试500强双证书】【Python-数据分析】将两个对象以指定方法按指定轴对齐DataFrame.align()选择题关于以下python代码说法错误的一项是?import pandas as pddf1 pd.DataFrame({"A": [1,2],"B":[3,4]})df2 pd.…

MySQL延时关联使查询速度提升N倍

以下内容也可以观看视频教程: https://space.bilibili.com/431152063先来看下面的sql语句: select * from orderinfo limit 1000000, 100目前orderinfo表中的数据大概是1亿行 查询耗时大概2秒多,如果将sql中的返回所有字段改成只返回dbid字段…

Linux驱动开发基础__APP怎么读取按键值

目录 1 妈妈怎么知道孩子醒了 2 APP读取按键的4种方法 2.1 查询方式 2.2 休眠-环形方式 2.3 poll方式 2.4 异步通知方式 在做单片机开发时,要读取 GPIO 按键,我们通常是执行一个循环,不断地 检测 GPIO 引脚电平有没有发生变化。但是在 Li…

进入保护模式

文章目录前言前置知识代码说明实验操作前言 本博客记录《操作系统真象还原》第四章实验操作~ 实验环境:ubuntu18.04VMware , Bochs下载安装 实验内容:实现从MBR到LOADER,由LOADER实现进入保护模式 实验原理:计算机…

Cadence PCB仿真分配电压网络电压时网络未自动识别问题解决方案

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1,问题概述2,分配方法3,避免方法4,总结1,问题概述 如下图所示在使用Allegro PCB SI为电源网络分配电压时,有些网络实际上是电源网络,但是未被自动识别,无法对齐分配电压,具体解决方法如下。 2,分配方法 第1…

最近新开源的基于单目稠密重建NeRF-SLAM

点云PCL免费知识星球,点云论文速读。文章:NeRF-SLAM: Real-Time Dense Monocular SLAM with Neural Radiance Fields作者:Antoni Rosinol John J. Leonard Luca Carlone编辑:点云PCL代码:https://github.com/ToniRV/N…

JavaScript 异步函数解析

前言 在学习 JavaScript 的过程中,理解并灵活运用异步相关知识是一件不容易的事情,这体现在代码可读性、健壮性上,好在 ES6 出现后挽回了这一局面,我们不再需要编写可读性不高的回调嵌套,也不用为了代码的健壮性而处处…

spring boot使用TaskScheduler实现动态增删启停定时任务

TaskScheduler 概述 TaskScheduler是spring 3.0版本后,自带了一个定时任务工具,不用配置文件,可以动态改变执行状态。也可以使用cron表达式设置定时任务。 被执行的类要实现Runnable接口 TaskScheduler是一个接口,它定义了6个…

具有梯度流的一类系统的扩散图卡尔曼滤波(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

FEW-SHOT TEXT CLASSIFICATION WITH DISTRIBUTIONAL SIGNATURES

摘要 在这篇文章中,我们利用元学习进行文本分类,元学习在计算机视觉中有相当好的效果,在这里,低层次的模式可以跨学习任务迁移的,,然而,直接将这个方法应用到文本中是具有挑战性的,…

【自学C++】C++输入cin

C输入cin C输入cin教程 在 C 语言 中我们需要捕获用户的键盘输入,可以使用 scanf 函数。scanf 函数在输入时,我们必须要指定输入的数据类型对应的格式化符,挺不方便。 在 C 中,我们要捕捉用户的输入,直接使用 std 命…

【目标检测】C-GhostNet

1、论文 论文题名:《GhostNet: More Features from Cheap Operations》 arxiv:https://arxiv.org/abs/1911.11907 github:https://github.com/huawei-noah/ghostnet 作者翻译:https://zhuanlan.zhihu.com/p/109325275 2、摘要 本篇论文是华…