我一直坚持这个问题一个多月了 . 我只需要在人们使用AR应用程序时录制视频 .
有几种选择:
1. Take the screenshot in Unity for every frame.
我每帧都试过taking a screenshot . 这太慢了 . fps只有5 .
然后我尝试了saving the texture到一个数组,然后将它们编码为图像 .
这会占用大量内存,并会导致移动电话显着丢帧 . fps大约是10 .
如果有人对这种方法有很好的想法,请告诉我 .
2. Use native plugins to record video.
我还没有找到任何解决方案 . 我担心这可能与ARCore发生冲突 .
我知道有一个Android solution但理想情况下我想使用Unity . 任何帮助表示赞赏,谢谢!
3. Save the texture from the texture reader api provided by ARCore computer vision example.
目录中有一个Computer Vision示例 . 我可以通过它的api直接从GPU获得纹理 .
但是,fps仍然很低 . 使用其边缘检测器示例,fps大约为15.我成功地将这些帧保存到另一个线程中的本地目录 . 但是fps仍然是不可接受的 . 底线是720p,30fps .
PS:我只需要保存帧 . 我可以将它们编码为视频 .
PPS: Just recording the camera feed 和 recording the camera feed and the augmented objects together 都没关系 . 任何一个成就都很棒 .
1 回答
您可以使用(真的很棒)NatCorder unity asset(asset store link)和相关的NatShare API轻松实现视频录制和共享 . 我在自己的ARCore experiment/"game做了同样的事情 . “
编辑:您可能必须实现this变通方法才能获得平滑的帧速率 .