我一直坚持这个问题一个多月了。我只需要在人们使用AR应用程序时录制视频。
有几种选择:
1。在Unity中截取每个帧的屏幕截图。
我每帧都试过taking a screenshot。这太慢了。 fps仅为5
然后我尝试saving the texture到一个数组,然后将它们编码为图像。
这会占用大量内存,并且会导致移动电话出现明显的帧丢失。 fps大约是10。
如果有人对这种方法有好主意,请告诉我。
2。使用原生插件录制视频。
我还没有找到任何解决方案。我担心这可能与ARCore发生冲突。
我知道有一个Android solution,但理想情况下我想使用Unity。感谢任何帮助,谢谢!
第3。从ARCore计算机视觉示例提供的纹理阅读器api中保存纹理。
目录中有一个Computer Vision示例。我可以通过它的api直接从GPU获得纹理。
然而,fps仍然很低。使用其边缘检测器示例,fps大约为15.我成功地将这些帧保存到另一个线程中的本地目录。但是fps仍然是不可接受的。底线是720p,30fps。
PS:我只需要保存帧。我可以将它们编码为视频。
PPS:只记录相机输入,记录相机输入和增强对象都可以。任何一个成就都很棒。
答案 0 :(得分:4)
您可以使用(非常棒的)NatCorder unity asset(asset store link)和相关的NatShare API轻松实现视频录制和共享。我在自己ARCore experiment/"game中做了同样的事情。“
编辑:您可能必须实施this解决方法才能获得平滑的帧速率。