Ubuntu 14.10+NDK+ffmpeg编译+Android
2015-07-10 11:26
681 查看
本文就是自己记录 在Ubuntu 14.10-64位系统下,用android-ndk-r10d交叉编译ffmpeg用于Android调用ffmpeg
参考:http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9 http://www.2cto.com/kf/201403/287834.html
1、在Ubuntu 系统下 安装android-ndk-r10d
去google官网下载:android-ndk-r10d安装在目录: /home/cms/android-ndk/android-ndk-r10d
2、去ffmpeg官网下载源代码
主页:http://www.ffmpeg.org/download.html#releases更早版本的源代码:http://www.ffmpeg.org/olddownload.html
我使用的是 ffmpeg-2.5.3
解压缩,放在/home/cms/android-ndk/ffmpeg-ndk/目录下
ffmpeg源代码的目录是: /home/cms/android-ndk/ffmpeg-ndk/ffmpeg-2.5.3
4、准备编译脚本:build-linux-NDK-r10.sh
这个是生成静态库将脚本build-linux-NDK-r10.sh放到ffmpeg源代码的目录:/home/cms/android-ndk/ffmpeg-ndk/ffmpeg-2.5.3下
#!/bin/bash NDK=/home/cms/android-ndk/android-ndk-r10d SYSROOT=$NDK/platforms/android-8/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64 CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" function build_one { ./configure \ --prefix=$PREFIX \ --disable-shared \ --enable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/arm-linux-androideabi/bin/ \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG make clean make make install } build_one
说明:
注意,configure过程中将临时文件放在/tmp目录下,与在cygwin下不同,不需要进行映射,因此不需要将环境变量 TEMPDIR定义为C:/cygwin/tmp
下面是指定生产静态库、不生成动态库
--disable-shared \ --enable-static \
5、命令行下
输入命令:cd /home/cms/android-ndk/ffmpeg-ndk/ffmpeg-2.5.3 chmod u+x build-linux-NDK-r10.sh build-linux-NDK-r10.sh
等待大约10多分钟,编译结束,在各个库目录下会生成libav***.a库文件,并且在目录/home/cms/android-ndk/ffmpeg-ndk/ffmpeg-2.5.3下在多一个 android的目录,android目录下有arm目录,arm目录下包含后续android开发需要的静态库、头文件
命令行中输入:查看各个静态库
ls /home/cms/android-ndk/ffmpeg-ndk/ffmpeg-2.5.3/android/arm/lib/ 输出: libavcodec.a libavfilter.a libavformat.a libavutil.a libswresample.a libswscale.a pkgconfig命令行中输入:查看各个库的头文件
ls /home/cms/android-ndk/ffmpeg-ndk/ffmpeg-2.5.3/android/arm/include/ 输出: libavcodec libavfilter libavformat libavutil libswresample libswscale
今天到此为止吧! Ubuntu 系统下生成静态库结束,动态库下一次再写,看下上一篇博客,应该能搞定!
明天继续!
相关文章推荐
- 使用WakeLock使Android应用程序保持后台唤醒
- Android ListView适配器中的getView()被复用详解
- Android 拍照:如何使用已有相机应用捕获图片(Taking Photos Simply)
- Android_调用ffmpeg_把截取视频保存为ppm文件
- 关于时间轴效果的全文解析
- android--存储之SharePreference
- Android学习之单位和尺寸
- Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
- 【android】来电悬浮窗
- android的edittext设置输入限制,只能输入数字
- android 与JS之间的交互
- Android ExpandableListView 一个小例子
- android禁止界面横屏
- Android bitmap序列化
- Android 分包机制
- Android — 长按ListView 利用上下文菜单(ActionMode) 进行批量事件处理
- 用到ListActivity中 , @+id/android:list"和"@android:id/list"的写法
- 自定义android dialog
- Android中的类装载器DexClassLoader
- Android Dialog使用举例