android - Android 上的 FFmpeg

标签 android ffmpeg stagefright android-ffmpeg

我已经在 Android 上编译了 FFmpeg (libffmpeg.so)。现在我必须构建像 RockPlayer 这样的应用程序或使用现有的 Android 多媒体框架来调用 FFmpeg。

  1. 您是否有在 Android/StageFright 上集成 FFmpeg 的步骤/程序/代码/示例?

  2. 能否指导我如何使用此库进行多媒体播放?

  3. 我有一个要求,我已经有音频和视频传输流,我需要将其提供给 FFmpeg 并对其进行解码/渲染。我如何在 Android 上执行此操作,因为 IOMX API 是基于 OMX 的并且无法在此处插入 FFmpeg?

  4. 此外,我找不到有关需要用于播放的 FFmpeg API 的文档。

最佳答案

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

  1. 为 Android 构建 ffmpeg 静态库。这是通过使用 libffmpeg 构建 olvaffe 的 ffmpeg android 端口 ( Android Build System ) 实现的。 .只需将源放在/external 下并 make 即可。您还需要从 Android 构建中提取 bionic(libc) 和 zlib(libz),因为 ffmpeg 库依赖于它们。
  2. 使用 Android 创建动态库包装 ffmpeg 功能 NDK .有很多关于如何使用 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二进制本身就是一个很好的例子),here是一个基础教程。最好的文档可以在标题中找到。

祝你好运:)

关于android - Android 上的 FFmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497475/

相关文章:

android - 如何创建怯场插件

android - 是否可以使用 stagefright 创建多个 OMXCodec 实例

java - EditText需要改变颜色监听器

ffmpeg - 如何使用ffmpeg从avi生成gif?

ffmpeg - 树莓派如何将 RTSP 流 h265 转换为 h264

android - 如何使 libswscale FFMpeg 库在 android 23+ 中工作

android - MediaCodec 如何在 Android 的框架内找到编解码器?

android - 如何识别特定文本并将该文本替换为android中图像内的其他文本?

Android 日历 API : How to force sync for a specific calendar

android - 如何让场景更新处理程序在 Action 启动时中断 (AndEngine)?