UE 像素流Pixel Streaming笔记

目录

参考

使用

1.像素流连接成功(On New Connection)

2.像素流断开连接(OnClosedConnection)

3.UE接收像素流String信息

(1). 直接PixelStreamingInput绑定(OnInputEvent)

(2). 直接使用组件PixelStreamingInput上的(OnInputEvent)

4.UE给像素流传信息

内存溢出(只有参考资料)

5.1

5.2+

官方以外的一种部署方式

资料:

下载连接(git)

视频教程:



参考

UE 像素流Pixel Streaming基本介绍和使用方法

UE4-PixelStreaming(虚幻引擎4-像素流)笔记

UE 像素流常用回调

UE 像素流通信 这链接能学到不少像素流的东西

虚幻UE 插件-像素流送实现和优化_ue5.3像素流-CSDN博客


使用

1.像素流连接成功(On New Connection)

必须使用GetPixelStreamingDelegates 这个节点。直接使用PixelStreamingInput这个组件是不行的

2.像素流断开连接(OnClosedConnection)

3.UE接收像素流String信息
(1). 直接PixelStreamingInput绑定(OnInputEvent)

优势就是测试方便。本地测试数据的时候直接调用绑定的事件就好。

(2). 直接使用组件PixelStreamingInput上的(OnInputEvent)

没有半毛钱优势。测试还要重新把这后面的代码复制粘贴一份。

4.UE给像素流传信息

内存溢出(只有参考资料)

5.1

PixelStreaming Memory Leak at UE5.1 - Programming & Scripting - Epic Developer Community Forums

上面连接测试出来不是因为像素流问题导致的内存溢出崩溃。而是场景中的平面反射(Planar Reflection)。删除场景中的平面反射他就好了。

*目前根据客户反馈确实项目没有再崩溃过。内存也比较稳定

5.2+

UE 5.2.1 Pixel Streaming performance problem - #24 by JacobZhou - Platform & Builds - Epic Developer Community Forums

memory leaks in pixel streaming(5.21) - #23 by Uno1982 - Multiplayer & Networking - Epic Developer Community Forums

Pixelstreaming Memory leak - Multiplayer & Networking - Epic Developer Community Forums

  1. 将 NVCodecs 文件夹从 engine 目录复制到项目的 Plugins 文件夹。
  2. 根据 Github 上 PR10637(PR10673这个连接我点击是404,所以我只能在各种回答里面找有关的代码。不保证是正确的。有待测试) 中提供的说明修改代码。
  3. 更新 NVCodecs 插件的信息。
  4. 在编辑器中,确保选中此插件的版本。
  5. 打包您的项目。
(...\Engine\Plugins\Experimental\AVCodecs\AVCodecsCore\Source\AVCodecsCore\Public\Video\VideoEncoder.h->166行)

return this->Child->SendFrame(MappedResource, Timestamp, bForceKeyframe);

修改成:

Result = this->Child->SendFrame(MappedResource, Timestamp, bForceKeyframe);

			MappedResource.Reset();

			return Result;

(...\Engine\Plugins\Experimental\AVCodecs\NVCodecs\Source\NVCodecs\Private\Video\Resources\VideoResourceCUDA.cpp->137行)

添加

	if (ExternalSemaphore)
	{
		CUresult const Result = FCUDAModule:CUDA().cuDestroyExternalSemaphore(ExternalSemaphore);
		if (Result != CUDA_SUCCESS)
		{
			FAVResult::Log(EAVResult::ErrorUnmapping, TEXT("Failed to destroy external semaphore"), TEXT("CUDA"), Result);
		}
	}

官方以外的一种部署方式

不知道能不能解决内存溢出的问题。只是在搜索相关资料中看到的一个国内做的一种轻量化的部署

资料:

下载连接(git)

我只学会了第一个连接。第二个和第一个有啥区别我也是不知道的。会玩的大佬自然会玩。不会玩的还是和我一样有教程就会玩。

https://github.com/inveta/PeerStreamEnterprise

peer-stream: 虚幻引擎UE5 像素流,和官方臃肿不堪的像素流SDK相比,我们在官方的基础上做了大量的优化和精简,开发出了轻量、零依赖、开箱即用的软件套装,前端的peer-stream.js基于WebComponentsAPI,后端signal.js基于NodeJS和npm/ws。

视频教程:

(UE5)像素流送:国内最佳部署入门|Peer-Stream|_哔哩哔哩_bilibili

百度云盘资源:

下载的Git内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值