Androidvideo帧处理

我正在处理在相机框架上进行实时image processing的应用程序。 为此,我使用预览callback的方法onPreviewFrame
这适用于支持分辨率至less为640×480或更大的预览帧的相机。 但是,当相机不支持如此大的相机预览分辨率时,应用程序被编程为拒绝处理这样的相框。 现在,我Sony Xperia的问题是Sony Xperia Go手机。 这是一个非常好的设备,可以录制高达1280×720分辨率的video,但不幸的是,最大相机预览尺寸为480×320,这对我的需求来说太小了。

我想知道的是如何获得这些larger camera frames (高达1280×720或更多)? 显然它必须是可能的,因为相机应用程序能够以该分辨率loggingvideo – 因此,该应用程序必须能够访问那些较大的帧。 如何从我的应用程序做同样的事情?

应用程序必须支持Android 2.1及更高版本,但即使我仅为Android 4.0或更高版本find解决scheme,我也会非常高兴。

这个问题类似于http://stackoverflow.com/questions/8839109/processing-android-video-frame-by-frame-while-recording ,但我不需要保存video – 我只需要那些高分辨率video帧…

提前非常感谢!

Solutions Collecting From Web of "Androidvideo帧处理"

看来唯一可以做的是从MediaRecoder数据解码帧。 您可以使用ffmpeg解码来自LocalSocket的recoreder数据。

希望以下的开源项目可能有所帮助:

ipcamera-for-android: https : //code.google.com/p/ipcamera-for-android/

spydroid-ipcamera: https : //code.google.com/p/spydroid-ipcamera/

你应该看看OpenCV库。 它有方法,让你接收全帧。

我有一个印象:video预览大小很小,比设置的video录制帧速率慢,慢。

我曾经试图寻找解决scheme。 看来更好的办法是从录像机获取videostream,然后直接处理来自videostream的数据。

你可以在Android的ip-camera上find一些例子。