Ubuntu下编译Android版本的ffmepg so库及源码
来源:互联网 发布:java数组的逆序输出 编辑:程序博客网 时间:2024/06/05 01:00
作者:谭东
时间:2016年8月19日
环境:Ubuntu 16.04 LTS最新版
FFMPEG版本:FFmpeg 3.0.2 "Einstein"
想要使用FFMPEG里的封装好的功能,并且在Android端使用,需要编译FFMPEG源码,生成so库和编译后源码。
首先去官网下载源码:https://ffmpeg.org/download.html#releases
我这里用的几乎是最新的版本:FFmpeg 3.0.2 爱意斯坦版本。
libavutil 55. 17.103
libavcodec 57. 24.102
libavformat 57. 25.100
libavdevice 57. 0.101
libavfilter 6. 31.100
libavresample 3. 0. 0
libswscale 4. 0.100
libswresample 2. 0.101
libpostproc 54. 0.100
点击Download gzip tarball下载。
下载提取后源码大致目录如下:
接下来编写sh命令:
我这里是基本的命令,只编译里一个arm平台的so库。其他平台类似。
#!/bin/bashNDK=/home/tandong/android-ndk-r12bPLATFORM=$NDK/platforms/android-9/arch-arm/PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuiltfunction build_one{ ./configure --target-os=linux --prefix=$PREFIX \ --enable-cross-compile \ --enable-runtime-cpudetect \ --disable-asm \ --arch=arm \ --cc=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-gcc \ --cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \ --disable-stripping \ --nm=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-nm \ --sysroot=$PLATFORM \ --enable-gpl --enable-shared --disable-static --enable-small \ --disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-debug \ --extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a" }CPU=armPREFIX=$(pwd)/android/$CPUADDI_CFLAGS="-marm"build_one
根据自己的情况,路径自己修改成自己电脑的。
命名为build_android.sh都可以。放在ffmpeg源码根目录即可。
接下来Ctrl+Shift+T启动终端,输入命令。执行build_android.sh命令。
然后输入make。最后输入make install。即可。这样在ffmpeg源码目录会生成android/arm目录。里面有include和lib目录。
lib下就是编译后so库。include是我们调用的.h和.c头文件源码。
大致结构如图。
这样我们就编译好源码so库了,为下一步进行调用和自定义二次编译我们所需的so库做好准备。
- Ubuntu下编译Android版本的ffmepg so库及源码
- Ubuntu下编译VLC Android源码so库详解
- Ubuntu下编译android所需ffmpeg的so库
- Ubuntu 9.10下的Android源码下载及编译
- Ubuntu环境下 Android平台源码的下载及编译
- Ubuntu环境下 Android平台源码的下载及编译
- Ubuntu环境下 Android平台源码的下载及编译
- Ubuntu下的源码下载及编译
- linux下交叉编译android版本的libSDL2.so
- Ubuntu下进行Android源码的编译
- ubuntu下android 源码的编译
- 在android源码下编译生成.so
- ubuntu kylin 14.04 64位下进行Android 4.4.2 R2版本的源码编译
- ubuntu下Android编译JNI产生的so库如何push到/system/lib
- ubuntu下编译android jni到so库的mk文件配置
- Ubuntu下Android源码编译及Eclipse开发环境搭建
- Ubuntu下Android源码编译及Eclipse开发环境搭建
- Ubuntu下Android源码编译及Eclipse开发环境搭建
- Simple Line Editor----CSU 1019
- ios json解析3840错误
- 源码角度解析:StringBuffer、StringBuilder、String
- iTween
- POJ 2031 (最小生成树)
- Ubuntu下编译Android版本的ffmepg so库及源码
- UVALive5198 UVA512 Spreadsheet Tracking
- poj 3281
- ubuntu16.04登录界面输入用户名密码后又回到登录界面
- QQ聊天列表粘性控件
- java基础知识IO简单介绍 (二)
- 超融合架构与容器超融合
- jsp中经常用到的变量数据类型转换例子
- PHP--两个字符串日期相减得到日时分秒