方式一
- 利用 SceneCaptureComponent2D 和 RenderTexture2D 获取 TArray
数据,再转成Texture2D或者 uint8 数组 - 需要连续采集时,不推荐
方式二
- 利用RHI的
ENQUEUE_RENDER_COMMAND
和ReadSurfaceData
- 比较推荐,之前和 python tensorflow 内存共享帧数据时用过,但后来发现其实python那边完全可以从显存那边拿数据
方式三
- 读取BackBuffer
- 利用
OnBackBufferReadyToPresent
和OnBackBufferReady_RenderThread(SWindow& SlateWindow, const FTexture2DRHIRef& BackBuffer)
- 一般推荐
方式四
- 利用
FFrameGrabber
其他(视频流)
- OBS
- FFmpeg、vlc
- win32gui - python
参考
- UE4杂谈 — 摄像机视图生成UTexture2d
- 获取UE4最后的渲染缓存数据BackBuffer
- 【UE4学习笔记】更快的获取UE4后缓存数据
- Unreal:如何高效的将数据从GPU拷贝到CPU
- TimmHess/UnrealImageCapture —— Github
- [UE4]RHI (Rendering Hardware Interface) Notes
- FrameGrabberを用いたキャプチャの実装方法を読み解いてみる
- UE4结合FFmpeg实现录制和推流画面(一)