我已经在 Android 上编译了 FFmpeg (libffmpeg.so)。现在我必须构建像 RockPlayer 这样的应用程序或使用现有的 Android 多媒体框架来调用 FFmpeg。
您是否有在 Android/StageFright 上集成 FFmpeg 的步骤/程序/代码/示例?
能否指导我如何使用此库进行多媒体播放?
我有一个要求,我已经有音频和视频传输流,我需要将其提供给 FFmpeg 并对其进行解码/渲染。我如何在 Android 上执行此操作,因为 IOMX API 是基于 OMX 的并且无法在此处插入 FFmpeg?
此外,我找不到有关需要用于播放的 FFmpeg API 的文档。
最佳答案
以下是我让 ffmpeg 在 Android 上运行的步骤:
- 为 Android 构建 ffmpeg 静态库。这是通过使用 libffmpeg 构建 olvaffe 的 ffmpeg android 端口 ( Android Build System ) 实现的。 .只需将源放在/external 下并
make
即可。您还需要从 Android 构建中提取 bionic(libc) 和 zlib(libz),因为 ffmpeg 库依赖于它们。 使用 Android 创建动态库包装 ffmpeg 功能 NDK .有很多关于如何使用 NDK 的文档。基本上你需要编写一些 C/C++ 代码来将你需要的功能从 ffmpeg 导出到一个库中,java 可以通过 JNI 与之交互。 NDK 允许您轻松链接到您在第 1 步中生成的静态库,只需在 Android.mk 中添加类似于此的行:
LOCAL_STATIC_LIBRARIES := libavcodec libavformat libavutil libc libz
使用 java 源代码中的 ffmpeg-wrapping 动态库。那里有足够的关于 JNI 的文档,你应该没问题。
关于使用ffmpeg播放,有很多例子(ffmpeg二进制本身就是一个很好的例子),here是一个基础教程。最好的文档可以在标题中找到。
祝你好运:)
关于android - Android 上的 FFmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497475/