如何从android中的一组图像制作视频,如flipagram

时间:2014-02-09 17:55:57

标签: android ffmpeg javacv

我搜索了解决方案并找到了 - Java CV - FFmpeg

需要一步一步地像这样整合它们

2 个答案:

答案 0 :(得分:4)

整合FFMPEG的步骤

(1.)从这里下载ffmpeg:http://bambuser.com/opensource。它 包含为android构建ffmpeg的脚本。

(2。)修改build.sh。将“com.bambuser.broadcaster”替换为您的包名称。您还需要设置ffmpeg标志以启用您感兴趣的编解码器。

(3.)运行build.sh,并将build / ffmpeg目录复制到你的apps jni / lib目录中。

(4。)使用来自SO帖子的fasaxc的makefile。

(5。)在jni目录和java包装器中创建native.c文件。首先,您可以在NDK样本中的hello-jni之后对其进行建模(/ samples / hello-jni)。

(6。)在native.c文件中包含标题,如下所示:#include“libavcodec / avcodec.h”。并调用您需要的函数:avcodec_register_all()等...

(7。)通过添加以下内容,在根活动中包含本机库:     静态的 {         System.loadLibraries( “”);     }

此外,还有刘飞鹏博客的重要链接 - http://www.roman10.net/how-to-build-ffmpeg-for-android/

答案 1 :(得分:1)

如果你可以定位最新的API(4.1到4.3),你应该试着玩这个: http://developer.android.com/reference/android/media/MediaCodec.html

来自changelog:

Android 4.1(API级别16)添加了MediaCodec类,用于媒体内容的低级编码和解码。在对视频进行编码时,Android 4.1要求您为媒体提供ByteBuffer数组,但Android 4.3现在允许您使用Surface作为编码器的输入。例如,这允许您对现有视频文件的输入进行编码,或使用从OpenGL ES生成的帧进行编码。

否则,如果您需要完全自定义的解决方案,可以尝试使用JNI和 libwebm (来自Google)的本地方式并实现编码器 http://www.webmproject.org/code/