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

Posted

技术标签:

【中文标题】如何使用 Unity 使用 ARCore 录制视频?【英文标题】:How to record video with ARCore with Unity? 【发布时间】:2018-10-01 18:56:39 【问题描述】:

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

有几种选择:

1.在 Unity 中为每一帧截取屏幕截图。 我尝试了taking a screenshot 每一帧。这太慢了。 fps 仅为 5。 然后我尝试saving the texture 到一个数组,然后将它们编码为图像。 这会占用大量内存,并会导致手机显着丢帧。 fps大约在10左右。 如果有人对此方法有好的想法,请告诉我。

2。使用原生插件录制视频。 我还没有找到任何解决方案。恐怕这会和 ARCore 冲突。

我知道有一个android solution,但理想情况下我想使用 Unity。感谢您的帮助,谢谢!

3。从 ARCore 计算机视觉示例提供的纹理读取器 api 中保存纹理。 目录中有一个计算机视觉示例。我可以直接从 GPU 的 api 获取纹理。

但是,fps 仍然很低。使用它的边缘检测器示例,fps 约为 15。我成功地将这些帧保存到另一个线程的本地目录中。但是fps仍然不能接受。底线是 30fps 时的 720p。

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

PPS:仅记录摄像头馈送同时记录摄像头馈送和增强对象都可以。取得的任何一项都很棒。

【问题讨论】:

问得很好。欢迎来到 *** 伙伴! @RannLifshitz 感谢兄弟的编辑! 【参考方案1】:

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

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

【讨论】:

感谢您的建议。我试过你的应用程序,录音非常好!我会尝试在我的项目中使用它。 太棒了!任何支持/将我的消息标记为答案将不胜感激:) 嗨 Nerk,我在自己的应用程序中实现了 NatCorder,使用虚拟 3d 对象录制时只能获得 5 fps,仅当相机视图处于活动状态时只能获得 10 fps。您究竟使用了什么解决方法来实现平滑的帧速率?我检查了您的链接,但我什至没有达到 30fps,所以我认为该解决方案对我没有帮助。 @ZeroLu github.com/google-ar/arcore-unity-sdk/issues/141 见 pablishos 第一条评论 @Soorya 这应该让你开始:medium.com/@olokobayusuf/…

以上是关于如何使用 Unity 使用 ARCore 录制视频?的主要内容,如果未能解决你的问题,请参考以下文章

ARCore Sceneform ChromaKeyVideo Sampleproject 如何使用视频功能

Unity:从设备摄像头录制视频

Unity 2D Animation——3.待机动画录制

Unity 录制视频并截图

如何在 Unity Editor 中录制游戏界面

Unity录制视频