Java 如何在内存中管理视频帧
我的应用程序正在用FFMPEG抓取视频的所有帧。Java 如何在内存中管理视频帧,java,android,memory,video,frames,Java,Android,Memory,Video,Frames,我的应用程序正在用FFMPEG抓取视频的所有帧。 我的问题是,我在哪里保存所有帧?我已经尝试将帧转换为位图并保存到arraylist,但应用程序显示内存不足。另外,当我将IplImages保存到arraylist(它运行)时,需要500 MB以上的空间。我使用了一个低质量的视频。那些具有高质量的帧也不能使用IplImages运行。您无法在内存中加载所有这些帧,因为内存有限。为了检查谷歌Android堆大小的限制,每个设备的堆大小都不一样,但没有那么大。您必须逐帧处理它并将其保存在SD卡之类的存储
我的问题是,我在哪里保存所有帧?
我已经尝试将帧转换为位图并保存到arraylist,但应用程序显示内存不足。
另外,当我将IplImages保存到arraylist(它运行)时,需要500 MB以上的空间。
我使用了一个低质量的视频。那些具有高质量的帧也不能使用IplImages运行。您无法在内存中加载所有这些帧,因为内存有限。为了检查谷歌Android堆大小的限制,每个设备的堆大小都不一样,但没有那么大。您必须逐帧处理它并将其保存在SD卡之类的存储设备上。但是如果应用程序同时在SD卡上逐帧读取和保存,则仅上传视频就太慢了,对吗?但可能比应用程序消耗大量ram要好。您知道FFmpeg的许可证吗?它是GPL,这意味着如果你在你的应用程序中使用它,那么你的应用程序的许可证也必须是GPL,因此是开源的