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

标签 android video ffmpeg mp3

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

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

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

我尝试启用:--enable-ffmpeg在 shell 脚本构建中。它也产生了一个 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。

我正在寻找一个合适的指南,我可以使用任意选项构建它,例如 libmp3lame , libshine .我卡在 m4amp3转换。

请有ffmpeg经验的大家指导一下。谢谢!

最佳答案

安卓java library对于使用 https://github.com/hiteshsondhi88/ffmpeg-android 编译的 FFmpeg 二进制文件

  • FFmpeg for Android 使用 x264、libass、fontconfig、freetype 编译
    和弗里比迪
  • 支持安卓L
  • 关于android - 如何为 Android 构建 ffmpeg 可执行二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35555186/

    相关文章:

    c# - 在 C# 和 Ffmpeg 之间创建管道

    ffmpeg - avconv 中的多线程以帧为单位分割视频

    javascript - 网页视频

    video - 如何使用 Gstreamer 制作可搜索的视频

    javascript - 如何通过浏览器管理视频 session "allow"要求?

    java - 如何更改android定时器周期?

    video - ffmpeg 使用 C API : how to deal with the black screen problem? 剪切视频

    javascript - 谷歌地图 API v3 : Remove Default start/end markers

    android - 没有谷歌播放服务的 AdvertisingIdClient

    android - 当前默认语言环境中的任何国家/地区名称