一个使用FFmpeg库读取3gp视频的例…

本文详细介绍了如何在Android应用中使用JNI调用FFmpeg库读取3gp视频文件。首先通过DDMS将3gp文件推送到模拟器的sdcard,然后编写JNI代码并配置Android.mk,利用ndk-build生成动态库,最后在Eclipse项目中加载库文件并实现Java代码,展示运行结果。
摘要由CSDN通过智能技术生成

http://blog.csdn.net/vrix/article/details/6930095

本文中的代码来自于https://github.com/churnlabs/android-ffmpeg-sample,更多的可以参考这个项目代码。我会在代码中加一些自己的注释。感谢作者churnlabs给我们提供这么好的例子以供我们学习。
在Android的一些系统层应用开发大多数是采用jni的方式调用,另外对于一些比较吃CPU或者处理逻辑比较复杂的程序,也可以考虑使用jni方式来封装。可以提高程序的执行效率。

本文涉及到以下几个方面:
1 将3gp文件push到模拟机器的sdcard中
2 写jni代码,内部调用ffmpeg库的方法,编译jni库
3 loadLibrary生成的库,然后撰写相应的java代码
4 执行程序,并查看最终运行结果。
最终程序的显示效果如下:


1 使用eclipse的DDMS工具,将vid.3pg push到sdcard中

2 撰写相应的jni文件

3 撰写相应的Android.mk文件

这里需要注意一下文件的目录情况,我截图说明一下。

在Android.mk中有意个LOCAL_C_INCLUDES :=$(LOCAL_PATH)/include指明了相应的FFmpeg的头文件路径。故在代码中包含

就可以。

4 调用ndk-build,生成libffmpegutils.so文件,将这个文件拷贝到/root/develop/android-ndk-r6/platforms/android-8/arch-arm/usr/lib目录,使得我们在下面使用Android AVD2.2的时候,可以加载到这个so文件。

5 撰写相应的Eclipse项目代码,由于在native.c文件中指明了项目的工程名词以及类名词还有函数名词,故我们的项目为com.churnlabs.ffmpegsample下面的MainActivity.java文件

6 编译运行即可,最终效果图

7 项目代码下载:

https://github.com/churnlabs/android-ffmpeg-sample/zipball/master

参考:
1 https://github.com/churnlabs/android-ffmpeg-sample
2 http://www.360doc.com/content/10/1216/17/474846_78726683.shtml
3 https://github.com/prajnashi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值