UE4像素流

2023-11-02

UE4像素流(局域网/公网)

前言

像素流一种UE4内置的插件,具体作用参考官网链接:https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingIntro/
重点:硬件需求 NVENC (N卡)或 AMF(A卡)。详细信息在官网链接查看



一、启用像素流

在UE4的Plugins 里启用Pixelstream 插件。然后重启插件生效

二、项目设置配置像素流参数以及打包

1.配置

-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
在这里插入图片描述
(参数为默认参数,打包完成后可以用快捷方式 改参数)

打包

正常打包,打包完后目录结构应该包含Pixelstream 目录
在这里插入图片描述
新版后 目录结构有所变化,不过只要有PiexlStreaming 目录就行。

配置启动参数

在这里插入图片描述
新建快捷方式,添加启动参数:
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888

其他参数:
-RenderOffscreen
无头运行虚幻引擎应用程序,在本地计算机上完全不显示渲染。应用程序不会显示任何窗口,也不会全屏呈现。 您可以将此参数与 -ForceRes 结合使用,以阻止虚幻引擎根据主显示器的分辨率自动调整分辨率。
如果省略此参数,虚幻引擎应用程序窗口将正常渲染。如果此应用程序窗口最小化,像素流视频和输入捕获将停止工作。因此,我们建议始终包含此参数,除非你需要能够在同一台计算机上本地查看虚幻引擎应用程序在运行时的渲染输出。
-ForceRes
当与-ResX和-ResY结合使用时,这将强制虚幻引擎达到指定的分辨率。这在通常没有显示分辨率的云部署中非常有用。
-ResX
设置虚幻引擎应用程序启动时使用的分辨率的宽度分量。
-ResY
设置虚幻引擎应用程序启动时使用的分辨率的高度分量。
-AudioMixer
强制虚幻引擎对音频使用软件混音,以便像素流送插件可以捕获音频。(此参数是必需的,以便在没有音频设备时从应用程序捕获音频并将其流式传输到浏览器,例如在云部署中。)
-Unattended
禁止在遇到错误时生成对话框。这在屏幕外或容器中运行虚幻引擎时非常有用,因为消息框在这些场景中可以无限期挂起。
-StdOut和-FullStdOutLogOutput
这两个标志的组合将产生最大的日志记录输出,这在调试或查看 SSH 终端中的实时日志时非常有用。

启动像素流服务(信令服务器)

http服务 80端口 8888端口

如果80 8888端口可以正常使用 直接运行run 命令,启动像素流服务。(UE4 4.26版本的)
在这里插入图片描述
启动的时候会安装一些依赖。
启动成功后:命令行显示如下,服务启动等待UE4链接
WebSocket listening to Streamer connections on :8888
WebSocket listening to Players connections on :80
Http listening on *: 80
然后启动上边设置好的快捷方式 程序运行后 命令行出现:
Streamer connected: ::1
代表成功接入UE4 画面。
(UE4 4.27后新版本)
在这里插入图片描述
SignallingWebServer\platform_scripts\cmd\setup.ps1 用管理员权限执行。
SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1
再执行Start_SignallingServer.ps1
执行成功后会显示:
WebSocket listening to Streamer connections on :8888
WebSocket listening to Players connections on :80
Http listening on *: 80

端口作用介绍

Signalling Server host

80- 对于来自客户端的所有 HTTP 请求。
要更改此值,请为信令服务器设置 --httpPort参数。

443 - 对于来自客户端的所有 HTTPS 请求,当信令服务器在 HTTPS 模式下运行时。
要更改此值,请为信令服务器设置 --httpsPort参数。

8888 - 用于来自虚幻引擎应用程序的所有传入连接请求。
要更改此值,请同时设置信令服务器的 --streamerPort参数和UE4 应用程序的 PixelStreamingPort参数。

Matchmaker Server host

90-表示来自客户端的所有HTTP请求。
若要更改此值,请使用匹配服务器 --httpPort参数。

9999- 用于信令服务器发送的所有消息。
若要更改此值,请同时设置–matchmakerPort 参数用于匹配器服务器,并为信令服务器设置–matchmakerPort参数。

信令服务器自定义配置

旧的版本cirrus.js
在这里插入图片描述
新版本 在同目录下的 config.js 里可以配置端口IP
在这里插入图片描述
像素流相关命令行配置参数链接:
https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingReference/

测试

在同一局域网的其他设备浏览器中输入 当前电脑的IP+端口号(本次实验用的80) 可以正常访问代表部署成功。或者在本机浏览器输入localhost:80 如下图:
在这里插入图片描述
至此本地局域网像素流部署完成。

公网访问像素流

跟局域网的区别

为了使信令和Web服务器能够在虚幻引擎应用程序和浏览器之间协商直接连接,每一方都需要向对方发送自己的IP地址。浏览器需要能够访问UE4应用程序发送的IP地址,反之亦然。

在简单的局域网中,每个端点通常可以假设另一方可以使用其自己的网卡已知的专用 IP 地址访问它。在开放的互联网上,跨子网,或者当网络地址转换(NAT)服务在浏览器和UE4应用程序之间进行干预时,通常不是这种情况。相反,每一方都需要通过查询实现 STUN(NAT 会话遍历实用程序)协议的服务器来找出自己的公开可见 IP 地址。在 STUN 服务器告诉每个端点其公开可见的 IP 地址后,信令和 Web 服务器可以继续代理其直接连接。
在这里插入图片描述
或者,您可以使用TURN服务器在UE4应用程序和浏览器之间中继媒体流。使用TURN协议,TURN服务器一方面连接到UE4应用程序,另一方面连接到浏览器。UE4应用程序将其所有流数据发送到TURN服务器,TURN服务器将数据转发到浏览器。在这种情况下,UE4应用程序和浏览器之间没有直接连接。(如果您需要通过无线运营商网络支持移动设备,您可能别无选择,只能使用 TURN 服务器。移动网络通常会阻止客户端通过WebRTC协议成功连接。

STUN和TURN协议以及从一台服务器回退到另一台服务器的能力共同构成了ICE(交互式连接建立)框架。

您可以在互联网上找到STUN和TURN服务器的几个开源实现。甚至还有公共 STUN服务器,您可以免费使用而不是托管自己的服务器,尽管在使用不是自己托管的服务时应谨慎行事。(由于通过 TURN 协议中继媒体所涉及的吞吐量和带宽,公共 TURN 服务很少免费提供。

Samples/platform_scripts/
为方便起见,该文件夹包含用于在Windows和Linux上运行CoTURN的脚本。CoTURN是一个免费的开源STUN / TURN服务器,可用于生产。我们已经删除了过去发布的 STUN 和 TURN 参考服务器,因为它们不是生产级的。

要将像素流送设置为使用 ICE 连接,您需要在信令和 Web 服务器的对等连接选项配置参数中设置要使用的 STUN 和 TURN 服务器的主机名。有关如何设置此参数的格式以及如何提供此参数的详细信息,参考链接:https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingReference/

此外,如果您要托管自己的 STUN 或 TURN 服务器,则必须确保您在peerConnectionOptions参数中为其指定的 IP 地址和端口在开放的互联网上可见。

开始配置turn服务器

未完…待续。

(下一篇是外网部署)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UE4像素流 的相关文章

随机推荐

  • 期货开户顺大市而逆小市

    期货的行情 有人愿意以更高的价来买入 就会涨 有人买意以更低的价格卖出 就会跌 现货市场上 一个馒头5角钱的时候 在期货市场上 如果有很多人争着买 这个馒头可能会涨到5块 或者50块 也是可能的 在这个馒头5块钱一个的时候 你感觉这个馒头太
  • ShiroFilter设计原理与实现

    Shiro提供了与Web集成的支持 其通过一个ShiroFilter入口来拦截需要安全控制的URL 然后进行相应的控制 ShiroFilter类似于如Strut2 SpringMVC这种web框架的前端控制器 其是安全控制的入口点 其负责读
  • Postgre 还原导入sql文件

    postgresql 如何导入sql文件 打开sql shell 执行如下操作 密码不显示 直接输入完成后按回车键 i C Users fulong Desktop trest3 sql 注意路径不要使用 不支持这种写法
  • Linux Kernel SMP (Symmetric Multi-Processors) 開機流程解析 Part(3) Linux 多核心啟動流程從rest_init到kernel_init與CPU

    http loda hala01 com 2011 08 android E7 AD 86 E8 A8 98 linux kernel smp symmetric multi processors E9 96 8B E6 A9 9F E6
  • Java-IO流篇-DataOutputStream

    DataOutputStream DataOutputStreams是OutputStream的子类 是数据输出流 此类继承自FillterOutputStream类 同时实现DataOutput接口 在DataOutput接口定义了一系列
  • 更新k8s证书(续签)

    下载 kubeadm x86 md5 7951a9348655b4f508b84ced66fcf371kubeadm arm md5 b11c4ce93722b07f96c2acdeaaa07e74 cd etc kubernetes cp
  • iframe的基本介绍与使用

    一 介绍 iframe 内嵌框架 是 HTML 中一种用于将一个网页嵌入到另一个网页中的标签 它可以在一个页面中显示来自其他页面的内容 在网页中 使用标签可以将一个网页嵌套在另一个网页中 实现网页间的互联互通 二 使用 标签的基本用法如下
  • MapReduce过程中setPartitionerClass、setSortComparatorClass和setGroupingComparatorClass三者关系

    Map首先将输出写到环形缓存当中 开始spill过程 job setPartitionerClass PartitionClass class 按key分区 map阶段最后调用 对key取hash值 或其它处理 指定进入哪一个reduce
  • 【测试开发】Junit 框架

    目录 一 认识 Junit 二 Junit 的常用注解 1 Test 2 Disabled 3 BeforeAll 4 AfterAll 5 BeforeEach 6 AfterEach 7 执行测试 三 参数化 1 引入依赖 2 单参数
  • 分析key原理

    总结 key是虚拟dom对象的标识 当数据发生变化时 vue会根据新数据生成新的虚拟dom 随后vue进行新虚拟dom与旧虚拟dom的差异比较 比较规则 旧虚拟dom中找到了与新虚拟dom相同的key 若虚拟dom中的内容没变 直接使用之前
  • 将一列具有相同数据的行合并到同一行

    如何将第一列具有相同数据的行合并到同一行 但要保护重复内容 将重复内容依次填充到重复行中第一行后面 首列相同的 将后面对应列各单元格内容合并到重复行中第一行后对应的单元格内 并且用 连接 对应列只有一个单元格有内容 则不添加 符号 若为空
  • 【sql】mysql索引问题笔记

    q 使用了索引就会有优化 a 然而并不是这样 一下情况都是没有作用的 1 索引字段并没有在查询条件中使用 2 条件查询的过滤结果占比过多 既索引字段为可重复的字段 常固发生此情况 3 对小表查询 此处指索引建立在小表上 联查到数据多的表的时
  • Android(java方法)上实现mp4的分割和拼接 (二)

    http blog csdn net banking17173 article details 20646251 这节谈一下如何在Android上实现mp4文件的高效率切割 业务需求举例 把一段2分钟的mp4文件切割出00 42 至 01
  • Hudi学习3:数据湖主流架构

    delta Lake Iceberg iceberg表可以扩展 Hudi 支持flink 并且支持快速upsert delete
  • VIM使用技巧专区汇总

    查找 set hlsearch 设置搜索高亮 something 在后面的文本中查找something something 在前面的文本中查找something pattern number 将光标停在包含pattern的行后面第numbe
  • 力扣:多数元素

    给定一个大小为 n 的数组 找到其中的多数元素 多数元素是指在数组中出现次数 大于 n 2 的元素 你可以假设数组是非空的 并且给定的数组总是存在多数元素 class Solution public int majorityElement
  • 频数表&频率表

    一 基本概念 1 频数表是将数据集按照某个特定列分类 分组 时观察每个类 组中数据出现次数的表 2 列联表是观测数据按两个或更多属性 定性变量分类时所列出的频数分布表 是由两个以上的变量进行交叉分类的频数分布表 3 频数也称 次数 对样本数
  • 关于this.$refs是undefined

    问题 最近在做开发的时候 遇到这样一个问题 从后端请求到一个图片列表 需要根据返回图片的情况设置元素的宽度 这就需要这样计算list的宽度imgList length imgElement clientWidth 为了在各种移动端自适应 不
  • opencv 解决ippicv下载问题,离线:ippicv_2019_lnx_intel64_general_20180723.tgz

    ippicv 2019 lnx intel64 general 20180723 tgz 这个下载超级慢 有设么用呢 硬件加速 人脸识别 说法不统一啊 以后再完善 下载超时怎么办呢 那我们就采取手动下载的模式然后离线安装 1 下载 ippi
  • UE4像素流

    UE4像素流 局域网 公网 文章目录 UE4像素流 局域网 公网 TOC 文章目录 前言 一 启用像素流 二 项目设置配置像素流参数以及打包 1 配置 打包 配置启动参数 启动像素流服务 信令服务器 http服务 80端口 8888端口 端