模拟Android相机

时间:2013-01-22 21:33:44

标签: android video camera android-camera

我正在使用Android手机的相机作为输入来测试成像算法,并且需要一种方法来一致地测试算法。理想情况下,我想拍摄预先录制的视频,并让手机“假装”视频输入是来自相机的实时视频。

我理想的解决方案是运行算法的应用程序不知道视频是预先录制的。我不想将视频文件直接加载到应用程序中,而是尽可能将其作为传感器数据读取。

这种方法可行吗?如果是这样,任何正确方向的指针都会非常有用,因为到目前为止谷歌搜索已经让我失望了

谢谢!

编辑:为了澄清,我的理解是Camera类使用相机服务从硬件读取视频。我想创建一个从视频文件而不是硬件中读取的自定义相机服务,而不是在应用程序端执行某些操作。那是可行的吗?

1 个答案:

答案 0 :(得分:1)

当您在实时Android视频Feed上进行处理时,您需要构建自己的custom camera应用程序,该应用程序通过Android提供的PreviewCallback interface为您提供单独的帧。

现在,模拟这一点会有点棘手,因为预览帧的格式通常是NV21格式。如果您使用的是预先录制的视频,我认为除非您尝试使用getFrameAtTime方法以完全不同的格式提供位图,否则无法一个接一个地读取帧。

这使我建议您可以使用getFrameAtTime方法测试这些位图(虽然我真的不确定您在这里尝试做什么)。为了使此代码能够在实时相机预览中工作,您需要将PreviewCallback界面中的NV21帧转换为与getFrameAtTime中的位图相同的格式,或者您可以调整您的算法以处理NV21格式的帧。 NV21是一种非常简洁的格式,分别显示颜色和亮度数据,但使用起来可能很棘手。