3

我正在尝试通过为我的 android 应用程序组合一个 mp3 音频剪辑和一个图像来创建一个 3gp 视频文件。即:mp3 + image = 3gp 视频剪辑。

我对此做了很多研究,但发现可用的帮助是有限的。

请让我知道如何做到这一点。

4

3 回答 3

2

该过程称为转码。指针:

于 2013-01-03T06:27:29.667 回答
2

如果您希望在您的应用程序之外执行此操作,请查看这篇文章,它提供了可用于实现相同目的的 ffmpeg 命令。

此外,ffmpeg 也可以为 android 编译并使用本文中讨论的 JNI使用

复制最佳答案以供快速参考:

以下是我让 ffmpeg 在 Android 上运行所经历的步骤:

  1. 为 Android 构建 ffmpeg 的静态库。这是通过使用Android Build System构建 olvaffe 的 ffmpeg android 端口 ( libffmpeg ) 来实现的。只需将源放在 /external 和 away 下。您还需要从 Android 构建中提取 bionic(libc) 和 zlib(libz),因为 ffmpeg 库依赖于它们。make
  2. 使用 Android NDK 创建一个包装 ffmpeg 功能的动态库。有很多关于如何使用 NDK 的文档。基本上你需要编写一些 C/C++ 代码来将你需要的功能从 ffmpeg 导出到一个库中,java 可以通过 JNI 与之交互。NDK 允许您轻松链接到您在步骤 1 中生成的静态库,只需在 Android.mk 中添加与此类似的行:LOCAL_STATIC_LIBRARIES := libavcodec libavformat libavutil libc libz
  3. 使用您的 java 源代码中的 ffmpeg-wrapping 动态库。那里有足够的关于 JNI 的文档,你应该没问题。

关于使用 ffmpeg 进行播放,有很多例子(ffmpeg 二进制文件本身就是一个很好的例子),这里有一个基础教程。最好的文档可以在标题中找到。

于 2013-01-03T06:29:00.627 回答
2

将 ffmpeg的一个端口编译为 android。您将获得一个 ffmpeg 可执行文件,并将其放入您的应用程序中。设置您的应用程序以将其提取到其数据目录中并将其标记为可执行文件。然后将它与ffmpeg 命令行选项一起使用。

构建一个包装器 JNI 类,如果您只需要从 java 代码中调用它。

于 2013-01-03T06:30:34.610 回答