我正在做一个使用保存在 sd 卡中的一组照片创建视频的应用程序。我要解决的问题是当我创建一些视频时应用程序崩溃。崩溃取决于源图片文件的分辨率。例如,我可以使用 400 张分辨率为 320x480 的图像渲染视频,但我只能使用分辨率为 2500x3200 的图像渲染 25 帧视频。
我正在使用 Asynctask 在后台进行渲染过程(用于向用户提供反馈并使其了解渲染过程)。当渲染进程崩溃时,logcat 中不会捕获任何警告/错误/等。使用 DDMS 检查内存使用情况,我看不到任何内存泄漏(我也没有在 logcat 上收到任何内存警告)。出于这个原因,我认为这可能是与 ffmpeg 库相关的问题(但我不知道)。
我在 avcodec.java 上定义了 testet 不同的编解码器,例如:
AV_CODEC_ID_MPEG1VIDEO = 1,
AV_CODEC_ID_MPEG2VIDEO = 2,
AV_CODEC_ID_H263 = 5,
AV_CODEC_ID_MJPEG = 8,
ETC
尝试使用无损视频编解码器似乎没有效果,当我尝试使用某些编解码器时,我也会遇到一些错误。
我在索尼爱立信 Xperia Arc(1ghz cpu,320mb 内部内存)上运行我的应用程序。
我不知道我的智能手机是否有足够的能力来渲染长的高清视频,但我看到市场上有一些应用程序,比如Droid Timelapse可以做到这一点。
任何建议将不胜感激,我不知道该如何解决。
谢谢你。