2

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

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

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

谢谢!

编辑:澄清一下,我的理解是 Camera 类使用摄像头服务从硬件读取视频。我不想在应用程序端做一些事情,而是想创建一个从视频文件而不是硬件读取的自定义摄像头服务。那可行吗?

4

1 回答 1

1

当您对实时 android 视频源进行处理时,您将需要构建自己的自定义相机应用程序,该应用程序通过Android 提供的PreviewCallback接口为您提供各个帧。

现在,模拟这会有点棘手,因为预览帧的格式通常是 NV21 格式。如果您使用的是预先录制的视频,我认为没有任何清晰的方法可以逐帧读取,除非您尝试getFrameAtTime使用完全不同格式的位图的方法。

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

于 2013-01-22T22:00:16.730 回答