游戏开发者通常在运行游戏逻辑时会将游戏渲染到屏幕的同一台设备上来运行虚幻引擎应用,多人联网游戏可能会在应用程序的多个实例之间分发部分游戏逻辑,但每个单独的实例仍然会为自己的玩家在本地渲染游戏。即使是使用 HTML5 部署选项创建可以在 Web 浏览器中运行的项目版本,游戏逻辑和画面呈现仍然在每个用户的 Web 浏览器中本地运行。

然而,使用像素流送,可以在用户看不到的计算机上远程运行UE开发的应用。虚幻引擎使用该计算机可用的资源(CPU、GPU、内存等)来运行游戏逻辑并渲染每一帧。它不断地将此渲染输出编码为媒体流,该媒体流通过轻量级 Web 服务堆栈。然后,用户可以在其他计算机和移动设备上运行的标准 Web 浏览器中查看该广播流。

用户的结果就像从 YouTube 或 Netflix 等服务观看视频流一样,但有两点区别

  • 流媒体播放的不是预先录制的视频片段,而是虚幻引擎实时生成的渲染帧和音频。
  • 用户可以从他们的浏览器控制交互,将键盘、鼠标和触摸事件以及从播放器网页发出的自定义事件发送回虚幻引擎。

UE像素流送的优势

  • 像素流送使移动设备和轻型 Web 浏览器能够显示比其他方式更好的图形质量。它们可以显示高分辨率的复杂场景,通过像素流送,用户可以运行原本只有在具有强大 GPU 的本机桌面应用程序中渲染时才有可能使用的渲染功能。
  • 用户不需要提前下载大型可执行文件或内容文件,也不需要安装任何东西。用户唯一需要下载的是播放的媒体流。
  • 可以支持多个平台,而无需创建和分发多个单独的包。只需为 Windows 或 Linux 打包应用程序一次,人们可以使用任何平台来体验UE内容。用户可以在任何支持 WebRTC 连接模型的现代浏览器中查看流,包括桌面、iOS 和 Android 平台上浏览器。
  • Pixel Streaming 系统包含最少数量的组件,任何人都可以相对容易地在本地网络中进行设置。但是,对于具有部署 Web 服务经验的团队来说,它足够强大,可以用作创建自定义云托管平台的基础。
  • Pixel Streaming 使用 WebRTC 点对点通信框架来尽可能降低用户和虚幻引擎应用程序之间的延迟。

下图简单总结了像素流送插件

像素流送技术框架

像素流送技术的框架包含两部分:像素流送插件Pixel Streaming、信令和 web 服务器。

  1. Pixel Streaming Plugin -该插件在虚幻引擎中运行。它使用视频压缩对每个渲染帧的最终结果进行编码,将这些视频帧与游戏音频一起打包成媒体流,并通过直接点对点连接将该流发送到一个或多个连接的浏览器。
  2. 信令和 Web 服务器 -信令和 Web 服务器负责协商浏览器和像素流插件之间的连接,并为浏览器提供播放媒体流的 HTML 和 JavaScript 环境。

像素推流连接方法

  1. 当启动所有像素流送插件时,在虚幻引擎中运行的像素流送插件首先会建立与信令和网络服务器的连接。
  2. 客户端连接到信号服务器,信号服务器为它提供一个 HTML 页面,其中包含播放器小部件和用 JavaScript 编写的控制代码。
  3. 当用户启动流时,信令服务器会协商在客户端浏览器和虚幻引擎应用程序之间建立直接连接。为了使此连接正常工作,浏览器和虚幻引擎应用程序需要知道彼此的 IP 地址。如果两者都在同一网络上运行,则它们通常在各自的 IP 地址上直接相互可见。但是,在两个端点之间运行的网络地址转换 (NAT) 服务可能会更改任何一方的外部可见 IP 地址。解决这个问题通常涉及使用 STUN 或 TURN 服务器,它告诉每个组件其外部可见的 IP 地址是什么。 一旦在客户端和虚幻引擎应用程序之间建立连接,像素流式处理插件就会开始将媒体直接流式传输到浏览器。来自客户端的输入由播放器页面的 JavaScript 环境直接发送回虚幻引擎应用程序。
  4. 即使在媒体流开始播放后,信令和 Web 服务器仍会保持与浏览器和虚幻引擎应用程序的连接,因此它能够处理浏览器发起的断开连接。

UE像素推流的局限性

首先像素流官方提供的并不是产品,不能拿来直接使用。其次它只适用于UE模型,再者它在实际中对于不同浏览器的兼容性不太好。而3DCAT实时云渲染技术,不仅仅是支持3D引擎的模型,对于一些非3D引擎比如一些大型的家装软件、PS、BIM等也能支持。而且还有很多针对运营的负载均衡、调度等信息,更加成熟更加产品化,做到拿来即可使用,可支持软件部署,也支持SDK对接。

3DCAT实时云渲染优势

首先,3DCAT实时云渲染不会限制任何的访问引擎,超过支持10多种国内外三维制作引擎输出的标准可执行文件,不挑引擎是最大的优势。其次3DCAT已经用于多个商业生产项目中,并不断的壮大与完善功能,提供最稳定的实时云渲染服务。此外,3DCAT所有模块均支持定制化开发,3DCAT还有强大的公有云服务,遍布全国的边缘节点,拥有超3万台的节点,而不是本地化单机部署能够比拟的。

本文《UE像素流送是什么?像素流推流原理介绍》内容由3DCAT实时渲染云解决方案提供商整理发布,如需转载,请注明出处及链接。

 

UE像素流送是什么?像素流推流原理介绍的更多相关文章

  1. 【小项目】微信定时推送天气预报Github项目使用及原理介绍-包含cron、天气预报、常用api

    一.资料链接 1.github地址 https://github.com/qq1534774766/wx-push 2.教程地址 https://blog.csdn.net/qq15347747/ar ...

  2. 检验实时3D像素流送平台好坏的七个标准!(上)

    将交互式3D像素流送技术作为有价值的企业工具之后,就该寻找像素流送服务供应商了.问题在于交互式3D像素流送是一种新兴技术,因此很难知道要问供应商的正确问题.在开始使用之前,这里有7个问题,您应该从候选 ...

  3. UE4.27 新版本像素流送插件配置

    UE4.27 像素流送新版插件部署命令 以下内容参考自UE5官方文档:https://docs.unrealengine.com/5.0/en-US/unreal-engine-pixel-strea ...

  4. 海康威视实时预览回调PS流用EasyRTMP向RTMP服务器推流中视频数据处理的代码

    在上一篇方案<EasyRTMP结合海康HCNetSDK获取海康摄像机H.264实时流并转化成为RTMP直播推流(附源码)>我们介绍了将海康安防摄像机进行互联网直播的整体方案流程,其中有一个 ...

  5. EasyRTMP结合海康HCNetSDK获取海康摄像机H.264实时流并转化成为RTMP直播推流(附源码)

    最近一家深耕于南方电网的科技公司同事找到我们,咨询关于调用海康HCNetSDK取流,并进行互联网转化的方案,经过反复的沟通以及自身在EasyDSS和EasyNVR方面的经验,我们推荐了海康HCNetS ...

  6. 今天谈谈流,什么是IO流?

    无标题 (5) :first-child { margin-top: 0; } blockquote > :last-child { margin-bottom: 0; } img { bord ...

  7. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  8. java 笔记(4) —— java I/O 流、字节流、字符流

    Java中使用流来处理程序的输入和输出操作,流是一个抽象的概念,封装了程序数据于输入输出设备交换的底层细节.JavaIO中又将流分为字节流和字符流,字节流主要用于处理诸如图像,音频视频等二进制格式数据 ...

  9. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

  10. bzoj 3130 [Sdoi2013]费用流(二分,最大流)

    Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识.    最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络 ...

随机推荐

  1. 【.NET】聊聊 IChangeToken 接口

    由于两个月的奋战,导致很久没更新了.就是上回老周说的那个产线和机械手搬货的项目,好不容易等到工厂放假了,我就偷偷乐了.当然也过年了,老周先给大伙伴们拜年了,P话不多讲,就祝大家身体健康.生活愉快.其实 ...

  2. 2023 CSP-J/S游记

    8.14 打了场 luogu 的 \(SCP\) ,给打没信心了. 8.16 普及模拟1 8.19 普及模拟2 8.22 普及模拟3 9.5 二调讲评结束后,和班主任说了考 \(CSP\) 的事情,就 ...

  3. 【Unity3D】选中物体消融特效

    1 消融特效原理 ​ 消融特效 中基于 Shader Graph 实现了消融特效,本文将基于 Shader 实现消融特效. ​ 当前实现消融特效的方法主要有 Alpha 测试消融.clip(或 dis ...

  4. html+css:小米顶部菜单+二级菜单

    1.源码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  5. 腾讯云轻量级主机修改hostname后重启后又恢复原先的hostname

    搭建k8s后,执行inspect后 显示hostname 不符合规范, 修改/etc/hostname 后重启, 发现又自动恢复到默认主机名: 查资料后发现腾讯云的配置里,如果重启会重置hostnam ...

  6. 如何避免Git合并远程分支时出现可读性差的日志

    问题及现象 当某一分支(假设为main)的本地仓库和远程仓库都基于同一个提交进行了修改,并分别创建了新的提交时,在本地执行git push origin main会提示先要执行git pull合并远程 ...

  7. 2021-07-20 JavaScript中关于eval()方法

    eval()常见用途 1.使用ajax获取到后台返回的json数据时,使用 eval 这个方法将json字符串转换成对象数组 let jsonString = JSON.stringify({fang ...

  8. Aop @AfterReturning因返回类型不一致导致无法执行切面代码

    要做返回异常之后,所有操作回滚的操作,本来想着泛型用 Object 就表示所有返回类型是 CommonResult 并且加指定注解的都走这个通知的代码,但是如下配置,无论如何也不生效 进入源码里发现, ...

  9. 项目实战:Qt中英文输入软键盘(支持Qt4、Qt5、触摸和键鼠混合输入等)

      需求   1. 全屏软键盘:  2. 输入英文:  3. 输入中文:  4. 支持触摸.键盘和输入混合输入:  5. 目前有黑色系皮肤:  6. Qt4和Qt5区分2个版本:   Demo:Qt5 ...

  10. django学习第十一天---django操作cookie和session

    Cookie cookie解析 会话 http协议是无状态的,无连接的 导致每次客户端访问服务端需要登录成功之后才能访问的页面,都需要用户再重新登录一遍,用户体验极差. 客户端想了个办法,cookie ...