我搜索了解决方案并找到了 - Java CV - FFmpeg
需要一步一步地像这样整合它们
答案 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/