我已经在 Android 上编译了 FFmpeg (libffmpeg.so)。现在我必须构建一个像 RockPlayer 这样的应用程序,或者使用现有的 Android 多媒体框架来调用 FFmpeg。
您有在 Android / StageFright 上集成 FFmpeg 的步骤/程序/代码/示例吗?
您能指导我如何使用这个库进行多媒体播放吗?
我有一个要求,我已经有了音频和视频传输流,我需要将其提供给 FFmpeg 并对其进行解码/渲染。由于 IOMX API 是基于 OMX 的并且无法在此处插入 FFmpeg,因此如何在 Android 上执行此操作?
另外,我找不到有关需要用于播放的 FFmpeg API 的文档。
以下是我让 ffmpeg 在 Android 上运行所经历的步骤:
- 为 Android 构建 ffmpeg 静态库。这是通过构建 olvaffe 的 ffmpeg android 端口来实现的(libffmpeg http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android/commits/android) 使用Android 构建系统 http://source.android.com/porting/build_system.html。只需将源放在 /external 下,然后
make
离开。您还需要从 Android 构建中提取 bionic(libc) 和 zlib(libz),因为 ffmpeg 库依赖于它们。
使用 Android 创建包装 ffmpeg 功能的动态库NDK http://developer.android.com/sdk/ndk/index.html。有很多关于如何使用 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 http://dranger.com/ffmpeg/tutorial01.html是一个基本教程。最好的文档可以在标题中找到。
祝你好运 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)