虚幻引擎的像素流技术:边缘计算与RTC架构的设计思路

【UE5】分分钟简单使用像素流服务(Pixel Streaming) UE5的Pixel Streaming已经封装的很好,简单三步实现简单的服务搭建。注:实例平台为Windows。 阅读详情

基于WebRTC技术实现Web端的三维呈现和互操作

UE4(Unreal Engine 4)是目前世界上最知名、最顶尖的3D游戏引擎,UE4的画质效果完全达到3A游戏大作的水准。本文主要研究如何基于WebRTC技术实现Web端的三维呈现和互操作。

目

录

  1. 按时空性能对通讯场景分类

  2. WebRTC底层原理简介

  3. 虚幻引擎像素流的RTC架构

  4. 单人模式:计算与显示分离

  5. 多人模式:分布式or中心化

  6. 边缘计算:前后端分离

  7. 像素流优化


按时空性能对通讯场景分类

如果按照时间性能和空间性能(数据量)这2个维度对所有网络通讯应用进行分类,大致可以分为3类:常规通讯、即时(消息)通讯、即时音视频通讯。


类型时间要求数据量场景
1通讯低小HTTP网页、文件传输、电子邮件
2即时通讯高小聊天室、电话、网络游戏
3即时音视频通讯高大视频通讯、远程桌面、3D像素流

这3类app对性能的要求递增,很显然WebRTC是为了解决第3类应用场景。此类通讯的难度最大,单位时间内传递的数据量巨大,同时要求低延迟。通常,第三类应用涵盖前两类,比如视频会议室内可以发送文字,所以WebRTC既支持MediaStreams也支持DataChannel。


WebRTC底层原理简介

WebRTC是一个重量级的开源软件,光对外提供的API接口就非常复杂。WebRTC的底层原理可以分成若干部分,其中最主要的3个核心模块分别是对等连接、压缩算法、通讯协议。

WebRTC功能涉及学科
对等体连接通过ICE-agent完成网络层的点到点UDP连接,完成对NAT/防火墙的打洞,定义p2p信令通道的序列化格式图论
音视频压缩音视频压缩算法,包括H.264/5和VP8/9编码信息论
通讯协议在传输层之上的流媒体通信协议RTP(RTCP),实时流量控制、状态控制、数据加密控制论

即时通讯技术要求最低的延迟,通讯数据都是临时生成,没有缓冲的机会,需要在最短的时间内完成消息传递同时还要保证安全性,所以即时通讯app的难度大于普通的app。比即时通讯更困难的场景是即时音视频通讯。目前市面上最成熟的音视频技术是WebRTC,从功能、性能、安全性考虑,WebRTC主要为我们做了很多事情:

  • 功能:开源、回声消除/降噪、支持媒体流和常规消息

  • 空间性能:音视频压缩、流量控制

  • 时间性能:UDP传输、p2p通讯

  • 安全性:数据加密、外设用户授权

WebRTC全部的应用场景和注意事项还包括基于WebSocket的房间控制与认证服务、多人RTC拓扑架构的选择、私有IP泄露问题等,但本文主要研究WebRTC在UE4引擎中的应用,所以不谈这些内容。


虚幻引擎像素流的RTC架构

虚幻引擎的像素流(pixel streaming)支持将某个摄像机(不是物理摄像头)的实时画面通过WebRTC协议发送到计算机网络上的其他设备,并接收对方发来的媒体流或数据流(DataChannel)。

UE4像素流只提供了这几样东西:摄像机的媒体流接口、WebRTC引擎插件、信令/Web服务程序、前端配合像素流的JS库。至于如何搭配使用这些功能来满足不同的应用场景,需要我们来设计不同的RTC架构。伴随着不同RTC架构的是3种常用的服务器:

  • Web服务:用于提供前端静态资源,中心化管理、认证。

  • ICE服务:用于NAT穿透/中继的STUN/TURN服务,内网则不需要。

  • 信令服务:用于peer之间交换协商IP地址、端口号、协议格式等信息。

虚幻引擎提供了Web服务和信令服务,剩下2个服务需要我们自己搭建,通常这3个服务位于同一台服务器上的不同端口。ICE服务可以使用开源的Coturn或者免费的公共服务器;Web服务则可使用任何一个http服务器;信令服务则推荐用WebSocket协议开发。不同的RTC架构也分单人模式和多人模式。


单人模式:计算与显示分离

一般情况,3D游戏引擎将cpu/显卡计算好的像素流通过DP/HTMI系统总线直接传导至显示器,这样看来,所有的过程发生在同一台电脑上;但基于WebRTC的像素流技术让视频的计算和显示发生在由计算机网络相连的不同设备上,这种情况下,一台机器运行引擎,另一台机器显示画面。除此之外还有一个重要区别:由于计算机网络的带宽远小于数据总线,还要保证网络安全,像素流在机器间的传输必须经过压缩和加密,这无疑给该项技术增加了许多难度,好在,WebRTC本身就支持媒体流的压缩和加密,这也是虚幻引擎选择WebRTC的原因。


多人模式:分布式or中心化

在一般的多人模式中,比如开放世界游戏中2个角色相遇:每个终端都运行UE4,然后通过服务器交换角色数据。全程没有WebRTC和像素流的参与,只有普通的UDP消息交换,如下图所示(一般网络游戏为了反外挂,不采用p2p通讯)。

但是这种场景需要每个客户端都拥有足够运行UE4的硬件条件,为了让更多的低端设备也能体验UE4的高清画质,就需要采用像素流的架构了。在多人像素流架构中,UE4运行在服务器上,客户端只要准备WebRTC软件(浏览器)和高清显示器即可,如下图所示。


边缘计算:前后端分离

在Web行业,以前所有的页面都是在服务端渲染(SSR),后来为了分担服务器的压力,2010年左右开始了前后端分离运动:大量计算资源被运送到前端,让前端承担更多的业务逻辑、UI渲染等工作。

在游戏行业的像素流架构下,为了减轻UE4服务器的计算压力,也可以将部分简单的计算任务放到前端,这些任务主要包括和3D引擎无关的UI界面、业务逻辑,让UE4服务器专心渲染3D。

  • UI界面:利用浏览器的HTML和JavaScript引擎来自定义2D的UI界面,比如游戏菜单和HUD。

  • 边缘计算:将尽可能多的可以预处理的程序放在前端计算,再将计算好的结果送给后端,比如计时器、数据验证(包括判断合法输入)等工作。


像素流优化

并不是每时每刻都需要传输100%的画质,可以按需对像素流的分辨率(空间)和帧率(时间)进行调整,以节省资源。在WebRTC、像素流API、开发者这3个层面需要考虑不同的优化方案。

  • WebRTC会自动地根据网络带宽等情况进行流量控制,码率调整。

  • 前端AFK接口检测用户在线状态,后端像素流API可以检测所有的连接并通过冻帧等手段限制像素流。

  • 开发者需根据视频窗口的尺寸变化动态调整WebRTC分辨率,在必要时暂停像素流(如切入菜单),以及在偏静态场景中主动降低帧速。

<完>

10分钟vue2快速集成融云音视频会议(web) 预备开始 首先要注册融云开发者账户(集成客户端需要使用appkey)并开通音视频服务(30分钟之后生效 直接用会出问题) 在开发环境下创建的每个应用均可享有 10000 分钟免费体验时长。 一、安装依赖? # 安装 RongIMLib v4 npm install @rongcloud/imlib-v4 --save # 安装 RTCLib npm install @rongcloud/plugin-rtc --save 二、使用步骤 <!-- * @D... 阅读详情

相关推荐

Vue3中集成Unreal 5.2 像素流(Pixel Streaming插件)

在Vue3项目中集成Unreal 5.2 Pixel Streaming播放器

m0_51171995的博客 1万+

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

虚幻引擎像素流广域网云部署多实例

qq_43021038的博客 7748

软件工程应用与实践(8)-网络可视化工具

2021SC@SDUSC open3d 基于WebRTC的Open3D Web可视化工具 源代码 import ipywidgets import traitlets import IPython import json import functools import open3d as o3d from open3d.visualization.async_event_loop import async_event_loop from open3d._build_config impor..

qq_45807222的博客 1114

教你用 C++ 在 Unreal 中为游戏增加实时音视频互动

我们已经上线了 Agora Unreal SDK,提供了支持 Blueprint 和 C++ 的两个版本 SDK。我们分享了如何基于 Blueprint 在游戏中创建实时音视频功能。在本...

声网的博客 1965

集成电路设计笔记(七)UVLO设计

1. 什么是UVLO 欠压锁定(Undervoltage-Lockout)简称UVLO,是电子设备中在电源电压低于正常工程准位时,切断电源的电路。在嵌入式系统中常会用UVLO监控电池电压,若电压低于一定值,会直接切断电源,保护嵌入式系统的电路。 许多电子设备中都有UVLO的功能,例如在镇流器中就有UVLO电路,若电压过低时直接切断电源。 UVLO就是低电压锁定; 低压关断. 欠压关断模式是当供电电压低于IC的开启门限电压时的一种保护模式。欠压关断模式可保证IC在供电电压不足时不致于被损坏。一个低电压锁定(

ccbirds 2万+

如何通过常规测井曲线识别砂岩、泥岩、碳酸盐岩和煤层

常规测井曲线通过不同岩性的物理性质差异识别砂岩、泥岩、碳酸盐岩和煤层。砂岩表现为低自然伽马(GR)、中等密度(RHOB)和声波时差(DT);泥岩以高GR、高中子(NPHI)和高DT为特征;碳酸盐岩显示低GR、高RHOB和低DT;煤层则具有极低RHOB、极高NPHI和DT的独特组合。综合GR与三孔隙度曲线(RHOB、NPHI、DT)可有效区分岩性,其中密度测井对煤层识别最可靠。电阻率(RT)曲线辅助判断流体性质,但需结合其他参数综合分析。

love code, love life. 2597

像素流系列教程大集合 | 资源整理

截止今日,虚幻引擎像素流系列以及WebRTC的文章已经发布了十余篇了,像素流(Pixel Streaming)是虚幻引擎4为了实现前后端分离而设计的一套基于WebRTC技术实现的视频流送服...

全栈空间 1666

DDM-MIMO-FMCW雷达速度模糊与解模糊MATLAB仿真

本文深入解析了DDM-MIMO-FMCW雷达中的速度模糊现象及其解模糊方法,通过MATLAB仿真详细展示了相位编码解调、速度扩展算法和混合波形设计三大解决方案。文章还提供了参数配置、信号建模和结果可视化的实用技巧,并分享了工程实践中的避坑指南,帮助开发者高效解决雷达信号处理中的速度模糊问题。

weixin_31528001的博客 350

最近200篇文章汇总

虚拟偶像行业分析SVG实战:实现港珠澳大桥logoWeb开发者的简历模板优秀员工评审表模板年度员工总结模板前端原生开发解决方案四大正切圆柱投影CSS实现最简洁的四角边框CSS实现最简洁的加载动画用最少的代码渲染3D模型中心透视圆柱投影正轴等距离切圆柱投影等角切圆柱投影的证明等面积圆柱投影的简单证明等面积圆柱投影的证明升级【转载】TMS协议简介新生代民工书籍推...

全栈空间 1114

最速下降法、牛顿法、拟牛顿法,Python实现高维二次目标函数优化

原理什么的就不说了,只有代码。。。 十元二次目标函数,求极小值点。 1.最速下降法 import random import numpy as np import matplotlib.pyplot as plt from sympy import * def goldsteinsearch(f, df, d, x, alpham, rho, t): flag = 0 a = 0 b = alpham fk = f(x) gk = df(x)

我乐飞的技术博客 2244

从PWM到正弦波:RC低通滤波器的魔法转换之旅

本文详细介绍了如何利用RC低通滤波器将STM32F103生成的PWM信号转换为高质量正弦波的技术原理与实践方法。通过分析滤波器设计、参数计算、硬件实现及Proteus仿真验证,为嵌入式开发者提供了一套完整的PWM转正弦波解决方案,适用于电机控制、音频信号生成等多种应用场景。

jupi8的博客 381

Vue3 + UE4+ 像素流 + 交互 的开发构建流程

ue4 + vue + 像素流的游戏引擎开发、交互逻辑

碳学长的博客 1万+

【FPGA】Robei EDA 的使用(7)—— Robei文件上板试验

#沐朝露兮以自华,觅大道兮以求成 我又滚过来了,研究了20多天RISCV,结果最后因为硬件问题导致无法在比赛中使用RISCV CPU,虽然已经临近比赛后期了,非常的崩溃,但是也没有什么办法。唉,一切不过是从头再来罢了。(写写博客舒缓我心中苦闷) ————————————————进入正文的分割线———————————————— 今天介绍一下如何利用 Robei EDA 生成文件,导入vivado中,综合下载到开发板里。拿我一个PWM控制舵机的代码为例。 Robei EDA设置 假设代码模块(model文件)经

Ninquelote的博客 2565

【UE4 像素流 WEBUI插件】部署像素流

一、单实例本地像素流送 步骤 1. 勾选插件 2. 打包工程并启动信令服务器 3. 创建快捷方式并启动游戏 二、单实例局域网像素流送 步骤 1. 编辑cirrus.js 2. 编辑快捷方式属性 3. 启动

ChaoChao66666的博客 3992

基于simulink的多能源系统协同控制的复杂场景实例:氢燃料电池+锂电池混合动力电动汽车能量管理仿真

本文介绍了基于Simulink的氢燃料电池与锂电池混合动力电动汽车能量管理系统的建模与仿真方法。系统包含驾驶循环输入、氢燃料电池、锂电池、能量管理和电机驱动等模块,通过Simulink实现各模块的协同控制。文章详细说明了从模型创建到性能评估的完整流程,包括驾驶循环输入设置、燃料电池和锂电池子系统建模、能量管理策略设计等关键步骤。该仿真模型可验证不同工况下的系统响应和能量利用效率,为优化混合动力汽车的能量管理策略提供有效工具。通过引入更复杂的物理细节和环境因素,可进一步提升模型的实用性和准确性。

xiaoheshang_123的博客 368

3D点云-CVPR 2020-PF-Net: Point Fractal Network for 3D Point Cloud Completion

是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像素点与原来像素点比较完成模型的训练。而PF-Net就是采用GAN的思想在3D点云上的应用。

404 Not Found 2375

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

本笔记记录了像素流送插件的实现和优化过程。 由于虚幻引擎自身定位原因,导致无法打包发布网页版本,以至于催生出像素流送进行网页端浏览控制。

UE成长之路,欢迎大家的关注! 9552

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

UE4像素流

像素流一种UE4内置的插件,具体作用参考官网链接:https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingIntro/重点:硬件需求 NVENC (N卡)或 AMF(A卡)。详细信息在官网链接查看80- 对于来自客户端的所有 HTTP 请求。要更改此值,请为信令服务器设置 --httpPort参数。

qq_38530236的博客 3441

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

虚幻引擎像素流PixelStreaming集群工具

虚幻引擎像素流PixelStreaming集群工具

qqcocobao的博客 886

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

实时渲染技术和像素流有哪些不同?

在3D应用开发中,UE引擎是使用比较多的,尤其是在数字孪生智慧城市、智慧工厂行业,因为UE引擎对于精细模型的处理更有优势。UE像素流技术是基于其自有的引擎,所以能流化的3D应用程序是UE引擎开发的,对于其他的3D引擎开发的程序是没法实现通用的。这样对用户来说就会方便很多,不用安装特定的浏览器才能使用,进一步的降低了使用的门槛,尽可能做到小白化,不会有太多的使用学习难点。对于视频会议软件的一些基础功能也都能支持,比如创建会议、加入会议、控制权转移、水印ID显示、添加课件、录屏等操作。在实践中点量云发现,

dianliang01的博客 589

像素流的基本概念

简单来说,像素流送利用云计算和低延迟传输技术,通过在云端服务器上部署应用程序和操作内容,并以视频流的形式传输到终端设备进行显示和操作。这种技术方案带来了一种新的改变,将原本对硬件要求严格的应用转变为高效、便捷和低成本的运行方式。

weixin_45875986的博客 736

UE4 4.27像素流公网布置教程

4.27像素流公网部署

兴趣使然的博客 3785

三维场景轻量化展示解决方案

三维场景轻量化展示解决方案 数字智慧水务,数字智慧园区,数字化工程项目,数字智慧城市

BDawn的专栏 1626

三维可视化JavaScript组件接口

三维可视化JavaScript组件接口搭建第一个属于你的数字孪生应用介绍经过多个周期的研发,前端3D视频流SDK软件包已正式发布,利用WebRTC协议,视频服务器可以高效的传输低延迟视频到...

全栈空间 1778

解剖像素流5.0.4源码

Part1前言和官方臃肿不堪的像素流SDK相比,我们在官方的基础上做了大量的优化和精简,开发出了轻量、零依赖、开箱即用的软件套装,项目持续开发了2年,禁受住了大量的压力测试,收获了许多社区文档和用户反馈,完全开源免费。https://github.com/inveta/peer-streamPart2底层架构:WebRTC欲将后端 UE5 的画面同步到前端页面上,需要在即时音视频通讯领域寻找相关技...

555

像素流 | 常见排错方法和技巧

https://xosg.github.io/PixelStreamer/PixelStreamer官方中文README.md3D 像素流: 虚幻引擎 WebRTC 核心组件和 EpicG...

全栈空间 2025
上一篇: Web上十大重量级API家族
下一篇: 【转】chromium垄断背后的阳谋论
xosg
xosg 领域专家: 网络协议与安全技术领域 领域专家: 网络协议与安全技术领域
博客等级 码龄9年 1986粉丝 864原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xosg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值