unity3d - 如何使用 Unity 使用 ARCore 录制视频?

标签 unity3d arcore

我已经被这个问题困住了一个多月了。我只需要在人们使用 AR 应用程序时录制视频源。

有几种选择:

1. 在 Unity 中为每一帧截图。

我试过 taking a screenshot每一帧。这太慢了。 fps只有5。
然后我尝试了 saving the texture到一个数组,然后将它们编码为图像。这会占用大量内存,并且会导致手机出现明显的掉帧。 fps在10左右。

如果有人对此方法有好主意,请告诉我。

2. 使用原生插件录制视频。

我还没有找到任何解决方案。恐怕这可能会与 ARCore 发生冲突。

我知道有一个 Android solution但理想情况下我想使用 Unity。任何帮助表示赞赏,谢谢!

3.从ARCore计算机视觉示例提供的纹理阅读器api中保存纹理。

目录中有一个计算机视觉示例。我可以使用它的 api 直接从 GPU 获取纹理。

但是,fps仍然很低。对于边缘检测器示例,fps 大约为 15。我成功地将这些帧保存到另一个线程的本地目录中。但是fps仍然 Not Acceptable 。底线是 30fps 的 720p。

PS:我只需要保存帧。我可以处理将它们编码成视频。

缴费灵:只是记录相机的饲料 一起记录摄像机信号和增强对象 都没事。任何一个实现都是伟大的。

最佳答案

您可以使用(非常棒)NatCorder unity asset 轻松实现视频录制和共享。 ( asset store link ) 和相关的 NatShare API .我自己也做了同样的事情 ARCore experiment/"game .”

编辑:您可能必须实现 this解决方法以获得平滑的帧率。

关于unity3d - 如何使用 Unity 使用 ARCore 录制视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49952116/

相关文章:

c# - 在 Unity 中使用 XML 存储颜色和字符串

android - ARCore+Unity3D : How to make a scene oriented to north?

java.lang.IllegalStateException : Couldn't create Engine

java - ARCore——读取叠加图像(AR场景截图)

android - 什么是UnityPlayerActivity、UnityPlayerNativeActivity、UnityPlayerProxyActivity?

c# - 在 Unity3D C# 中使用曲线分割纹理

c# - 覆盖 Unity3D 内置的 CharacterController

unity3d - Unity - 激活 "is Trigger"会使东西从物体中掉落

android - java.lang.ClassNotFoundException : com. google.android.gms.common.GoogleApiAvailability 尝试将 arcore 与 mediapipe 集成时发生

android - 我可以更改 ArCore 虚拟相机的姿势或在一个场景中有多个虚拟相机吗?