我正在工作的应用程序,做一些实时图像处理的相机帧。为此,我使用预览回调的方法onPreviewFrame
。
这适用于支持分辨率至少为640x480或更大的预览帧的相机。但是当照相机不支持如此大的照相机预览分辨率时,应用程序被编程为拒绝处理这样的帧。现在,我遇到的问题是像Sony Xperia
Go这样的手机。这是一个非常好的设备,可以录制分辨率高达1280x720的视频,但不幸的是,最大相机预览尺寸是480x320,这对我的需求来说太小了。
我想知道的是如何获得这些larger camera frames
(高达1280x720或更多)?显然,这必须是可能的,因为相机应用程序具有以该分辨率录制视频的能力-因此该应用程序以某种方式必须能够访问这些较大的帧。如何在我的应用程序中执行相同的操作?
应用程序必须支持Android 2.1和更高版本,但即使我只为Android 4.0或更高版本找到问题的解决方案,我也会非常高兴。
这个问题类似于http://stackoverflow.com/questions/8839109/processing-android-video-frame-by-frame-while-recording
,但是我不需要保存视频--我只需要那些高分辨率的视频帧……
发布于 2014-02-27 15:11:51
似乎你唯一能做的就是解码MediaRecoder数据中的帧。你可以使用ffmpeg来解码来自LocalSocket的recoreder数据。
希望下面的开源项目能有所帮助:
安卓的ipcamera:https://code.google.com/p/ipcamera-for-android/
spydroid-ipcamera:https://code.google.com/p/spydroid-ipcamera/
发布于 2013-06-01 21:15:08
您可能应该看看OpenCV库。它具有允许您接收完整帧的方法。
发布于 2013-09-22 08:23:19
我有一个印象:视频预览尺寸小,而且速度慢,比设定的视频记录帧率慢。
我曾经试图在这个问题上寻找解决方案。似乎更好的方法是从录像机中获取视频流,然后直接从视频流中处理数据。
你可以在Android的ip-camera上找到一些例子。
https://stackoverflow.com/questions/14364144
复制相似问题