一个基于ffmpeg的android播放器
2012-10-17 11:19
260 查看
最近在做ffmpeg移植相关的工作,我在前篇文章中提到过ffmpeg移植的一种方法。最近我又在国外网站上看到一个人基于ffmpeg做出了一个android播放器,我按照他所描述的步骤尝试了一下,发现他的步骤还是有一些错误和不尽详细的地方。所以,我想写这篇文章来帮助大家。
实验的平台是ubuntu12.04LTS,NDK是android-ndk-r5或android-ndk-r5b。
所有代码可以从该网站下载:http://www.roman10.net/how-to-build-android-applications-based-on-ffmpeg-by-an-example/
源码下载下来之后,首先要解压。
1.进入解压出来的文件夹,在jni文件夹目录下找到Application.mk。把第一行改成APP_ABI := armeabi。这个我要解释一下,因为在avd中android2.2的模拟器cpu默认选择就是armeabi,不能更改。所以如果不更改这一行的话会导致编译出来的apk无法在android2.2模拟器上运行。
2.进入jni文件夹下的ffmpeg-0.8文件夹,打开build_android.sh文件。根据自己的ndk路径来修改其中的如下三行:
由于我们在Application.mk中修改了APP_ABI,所以我们同时也要在build_android.sh中作出相应的修改。即注释掉如下几行:
3.在终端下进入build_android.sh所在的目录,修改其可执行权限:
4.在终端下输入如下代码执行build_android.sh:
5.步骤4完成之后,打开jni目录下的android.mk文件,把其中的armv7-a全部替换成armv6。保存退出后,终端进入android.mk所在目录,根据自己的ndk-build目录来执行如下命令:
6.然后打开eclipse,新建android工程,将ffmpegTest文件夹导入工程,检查gen文件目录下是否有R.java文件(如果没有的话执行project->clean即可)。打开一个android2.2模拟器,然后运行程序即可安装播放器到模拟器。
实验的平台是ubuntu12.04LTS,NDK是android-ndk-r5或android-ndk-r5b。
所有代码可以从该网站下载:http://www.roman10.net/how-to-build-android-applications-based-on-ffmpeg-by-an-example/
源码下载下来之后,首先要解压。
1.进入解压出来的文件夹,在jni文件夹目录下找到Application.mk。把第一行改成APP_ABI := armeabi。这个我要解释一下,因为在avd中android2.2的模拟器cpu默认选择就是armeabi,不能更改。所以如果不更改这一行的话会导致编译出来的apk无法在android2.2模拟器上运行。
2.进入jni文件夹下的ffmpeg-0.8文件夹,打开build_android.sh文件。根据自己的ndk路径来修改其中的如下三行:
NDK=/home/zk/java/android-ndk-r5 PLATFORM=$NDK/platforms/android-8/arch-arm/ PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
由于我们在Application.mk中修改了APP_ABI,所以我们同时也要在build_android.sh中作出相应的修改。即注释掉如下几行:
#arm v7vfpv3 #CPU=armv7-a #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU " #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG= #build_one选择arm v6:
#arm v6 CPU=armv6 OPTIMIZE_CFLAGS="-marm -march=$CPU" PREFIX=./android/$CPU ADDITIONAL_CONFIGURE_FLAG= build_one然后保存退出。
3.在终端下进入build_android.sh所在的目录,修改其可执行权限:
sudo chmod 755 build_android.sh
4.在终端下输入如下代码执行build_android.sh:
./build_android.sh
5.步骤4完成之后,打开jni目录下的android.mk文件,把其中的armv7-a全部替换成armv6。保存退出后,终端进入android.mk所在目录,根据自己的ndk-build目录来执行如下命令:
/home/zk/java/android-ndk-r5/ndk-build
6.然后打开eclipse,新建android工程,将ffmpegTest文件夹导入工程,检查gen文件目录下是否有R.java文件(如果没有的话执行project->clean即可)。打开一个android2.2模拟器,然后运行程序即可安装播放器到模拟器。
相关文章推荐
- 一个基于ffmpeg,Android 和linux SDL 都可使用的播放器源码
- 基于ffmpeg的Android播放器开源代码[转]
- 基于ffmpeg的Android播放器开源代码
- 基于ffmpeg的Android 2.2播放器开源代码
- 基于ffmpeg的Android播放器开源代码
- 基于ffmpeg的Android 2.2播放器开源代码
- 最简单的基于FFmpeg的移动端例子附件:Android 自带播放器
- 基于ffmpeg的Android播放器开源代码
- [Android实例] 基于ffmpeg的Android播放器开源代码
- 基于ffmpeg的Android 2.2播放器开源代码
- 最简单的基于FFmpeg的移动端例子附件:Android 自带播放器
- [置顶] 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!
- android基于ffmpeg的简单视频播发器 三线程实现播放器(完)
- 多媒体开发之播放器---一个基于FFmpeg、libtorrent的P2P播放器实现
- Android最简单的基于FFmpeg的例子(三)---编译FFmpeg成一个SO库
- 基于FFmpeg的Android平台硬解播放器的移植(未完,待续)
- 基于ffmpeg的Android播放器开源代码 Posted on
- 最简单的基于FFmpeg的移动端样例附件:Android 自带播放器
- 基于ffmpeg的Android播放器开源代码
- 最简单的基于FFMPEG+SDL的视频播放器:拆分-解码器和播放器