2011-05-09 40 views
6

我有一个关于Android和ffmpeg的非常基本的问题。我从http://bambuser.com/opensource获得了ffmpeg,并且能够为ARM编译它。我如何在Android上实际使用ffmpeg?

结果是二进制文件(ffmpeg)以及几个libsomething.so文件。

我的问题是:这是否足以视频解码?那我该如何真正使用ffmpeg?

要加载我有库:

static { 
    System.load("/data/data/com.package/lib/libavcodec.so"); 
} 

它加载的罚款。但是呢?

更多解释:我看到其他项目的人在他们的项目中的JNI目录中有他们的ffmpeg源代码。他们还创建了一些Android.mk文件和一些C代码。我还需要这个吗?为什么我会先创建.so文件,然后再次复制ffmpeg源代码?

我知道NDK,它应该如何工作,但我从来没有见过人们如何将使用它实际调用的ffmpeg功能的例子,因为人们似乎隐藏自己的实现(这是有点理解),但甚至没有提供有用的指针或示例。

这么说吧,我想解码的视频文件。我需要实现哪种本地方法?我如何运行该项目?哪些数据类型需要传递?等等。这里肯定有少数人至少这样做了,我通过搜索几小时和几小时就知道这一点。

+0

你是怎么从编译链接http://bambuser.com/opensource – 2011-09-19 10:07:15

+0

下载@Swathi这是不是太难做的ffmpeg。只需按照“INSTALL”文件中该文件夹内的说明进行操作即可。 – slhck 2011-09-19 10:08:44

+0

感谢您的快速回复:)我正在下载它,我会按照其中的说明。我在Windows上工作,是否需要其他配置? – 2011-09-19 10:13:13

回答

6

关于第一个问题;

只是建筑是不够的正确使用的ffmpeg库。您还应该按照正确的顺序包装这些文件。因为这些文件在连接的时候NEDED其他库。您可以通过使用显示此文件的标题信息。

objdump -x libavcodec.so | grep NEEDED 

所以你需要通过Android.mk包装这些文件。你可以检查这个link

第二个;

你只从FFmpeg的项目所需要的头文件。实施将从所有图书馆链接。这可能是因为,开发人员并没有打扰过滤头文件。

而最后一个;

你的想法似乎是正确的暂时,目前大部分开发商都在努力使用的ffmpeg,但他们缺乏的文档和示例代码。

+0

感谢您的信息...我建立我的ffmpeg库,我有这样的文件..我想开发应用程序压缩视频文件的大小。;那么我应该怎么做..i是什么方法可用于在ffmpeg中压缩视频,你能帮助我吗? – 2013-08-28 15:40:10

+0

@ Swap-IOS-Android我面临同样的问题,你有什么解决方案吗? – 2013-12-26 19:10:09

+0

@ParagChauhan不,我使用javac库而不是ffmpeg来转换我的视频 – 2013-12-27 02:30:20