如何为Android构建ffmpeg可执行二进制文件?

时间:2016-02-22 13:41:01

标签: android video ffmpeg mp3

我正在努力如何为Android命令构建ffmpeg的可执行二进制文件。 我是ffmpeg的新手,我需要从mp4等视频文件中提取音频。

我按照这里的教程来构建ffmpeg二进制文件:http://www.roman10.net/how-to-build-ffmpeg-for-android/

我不需要* .so文件在NDK中使用,但只需要一个可执行的二进制文件。

我尝试在shell脚本构建中启用:--enable-ffmpeg。它也产生了一个ffmpeg文件。特别是,文件大小很小,大约2M。但是,我无法在Android执行中使用它,如下所示:

p = Runtime.getRuntime().exec("/data/data/example/ffmpeg -i /sdcard/test.mp4  -vn -acodec copy /sdcard/test.aac");

以上执行速度非常快,当然也没有给出任何结果。

我继续搜索并在此处找到了一个示例:https://github.com/guardianproject/android-ffmpeg-java

项目中的ffmpeg二进制文件很好,我可以用所需的输出运行一些命令。但是,有些转换为mp3格式会失败,因为它可能在构建时缺少libmp3lame。特别是,ffmpeg比我的重得多,大约是15M。我不知道他们是如何构建binayr的。

我正在寻找一个适当的指南,我可以使用libmp3lamelibshine等任意选项构建。我被m4a转换为mp3转换。

每个有ffmpeg经验的人,请指导我。谢谢!

1 个答案:

答案 0 :(得分:1)

使用library

编译的FFmpeg二进制文件的Android java https://github.com/hiteshsondhi88/ffmpeg-android
  • 使用x264,libass,fontconfig,freetype编译的用于Android的FFmpeg 和fribidi
    • 支持Android L