用于 android 的 ffmpeg(使用教程:“ffmpeg 和 Android.mk”)

Posted

技术标签:

【中文标题】用于 android 的 ffmpeg(使用教程:“ffmpeg 和 Android.mk”)【英文标题】:ffmpeg for a android (using tutorial: "ffmpeg and Android.mk") 【发布时间】:2011-02-08 08:35:17 【问题描述】:

我正在尝试为 android 编译 ffmpeg。我发现了几个关于这个主题的帖子,但这些似乎都不起作用。如果尝试像在 [1] 上发布的那样构建 ffmpeg。有人使用这些教程成功编译了ffmpeg吗? 我不确定如何实现步骤 4 到 5。

第 4 步:配置 ...

步骤 5:cd 到您的 NDK 根目录,输入 make TARGET_ARCH=arm APP=ffmpeg-org

在我看来,构建一个像教程第 5 步中解释的应用程序需要一些前面的步骤。不幸的是,我的文件夹中没有要制作的应用程序。我正在使用当前的 android ndk 版本 3 并检查了 [3] 和 [4] 中的实际 ffmpeg 版本。我感谢每一个建议。

[1]http://slworkthings.wordpress.com/ [2]http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android [3]http://ffmpeg.org/download.html

【问题讨论】:

我已经浏览了这里和许多其他站点的所有回复,但似乎没有针对 Android 编译、构建和使用 ffmpeg(在 Windows 环境中)的权威指南。能够做到这一点将非常有用。 我找到了以下链接,该链接有效rowntreerob.wordpress.com/2012/06/17/… 【参考方案1】:

环顾网络后。我找到的唯一可行的解​​决方案是由 Bambuser 提供的,它移植了 ffmpeg 以在他们的 android 应用程序中使用。

代码在这里:http://bambuser.com/opensource

基本上,您将 .so 文件以及您可能需要的任何 .h 文件复制到您的 jni/lib 目录,然后通过 javah 创建一个 JNI 包装器,然后它就可以工作了。

编辑:

由于这篇文章是为 Android 编写了一些打包的 ffmpeg 项目,因此最容易编译和使用的项目之一是:https://github.com/guardianproject/android-ffmpeg。

它采用静态编译二进制(不是库)的方法,在运行时通过 shell 命令运行。在 github 上搜索“android ffmpeg”以获取 forks 和相关项目。

不过,没有找到基于 JNI 实现的良好封装方法。

【讨论】:

你不需要一个可以调用共享库的 C 或 C++ 文件,或者这些调用可以通过头文件进行吗? 你能详细说明一下吗(也在@John的问题上)?你搞定了吗? 嘿,@Guy,你认为你能详细说明你是如何做到这一点的吗?可能有一些代码示例和说明?【参考方案2】:

我在这里找到了关于 android 上 ffmpeg 的指南: http://rxwen.blogspot.com/2010/05/use-ffmpeg-to-setup-streaming-server-on.html

他在另一篇文章中解释了他如何在 android 上进行本地编程以安装 ffmpeg。希望对您有所帮助。

【讨论】:

【参考方案3】:

我将提供一个更更新的源列表,其中将解释如何构建,在某些情况下,甚至在 Android 上使用FFMPEG

这是我最喜欢的指南:http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/

如果您需要更多选择,可以看看这些,同样不错

https://github.com/guardianproject/android-ffmpeg https://github.com/halfninja/android-ffmpeg-x264 https://vec.io/posts/how-to-build-ffmpeg-with-android-ndk

【讨论】:

github.com/appunite/AndroidFFmpeg 似乎也相当不错。但它是一个视频播放器,我需要一个转码器,所以你到 android-ffmpeg-x264 的第二个链接看起来很合适,谢谢【参考方案4】:

在 NDK r3 中,当您使用 make 命令时,NDK 将简单地使用“apps”文件夹中的文件夹名称作为项目名称。这假设您有 FFmpeg 源文件和 android.mkNDK/apps/ffmpeg-org/jni/ 中的某个位置

换句话说,请确保您的文件夹名称设置为ffmpeg-org

编辑:您可能会发现使用将make 更改为ndk-build 的NDK r4 是值得的。在这个新的 NDK 中,您不需要以任何特定方式设置项目,因为 ndk-build 只需在您的项目中搜索 Android.mk 文件即可告诉它要编译什么。

【讨论】:

以上是关于用于 android 的 ffmpeg(使用教程:“ffmpeg 和 Android.mk”)的主要内容,如果未能解决你的问题,请参考以下文章

bindProcessToNetwork 不适用于 android 中的 ffmpeg

FFmpeg 示例代码,用于从静止图像 JNI Android 创建视频文件

Android FFmpeg 音视频开发教程

Android FFmpeg 音视频开发教程

如何在android上使用ffmpeg录制视频?

使用 x264 为 Android 构建 FFMPEG