ffmpeg编译android的so库
来源:互联网 发布:传奇技术联盟网络磁盘 编辑:程序博客网 时间:2024/05/21 06:44
一、编译环境
本人编译环境是在mac下的,此方法同样适用于linux
除了系统要求,还要ndk,大家去下一个mac版的,如果不想找的话---https://pan.baidu.com/s/1i5utCkX,直接解压出来就行
二、编译ffmpeg
如果大家需要编译的是ffmpeg-3.0版本,则可去https://github.com/zhu12345618/ffmpeg-android直接下载,解压后,cd到解压出来的目录里,里面会有build_android.sh文件。
里面有build_android.sh文件,这个是本人简化的脚本。
这里要说一下这个脚本的原作者链接https://pan.baidu.com/s/1nuqKjjF
build_android_full.sh是原作者的未简化脚本。
cd到解压出来的目录后执行./build_android.sh或者./build_android_full.sh命令。
一键编译!完!
如果编译的不是ffmpeg-3.0版本,则需要去官网下载相应的ffmpeg版本,把下面的脚本(脚本名为build_android.sh)放到下载下来的根目录里,再在根目录新建ffmpegtemp文件夹。
#!/bin/bashexport TMPDIR=/Users/zhufu/ffmpeg-3.0/ffmpegtemp #这句很重要,不然会报错 unable to create temporary file in# NDK的路径,根据自己的安装位置进行设置NDK=/Users/zhufu/android-ndk-r12b# 编译针对的平台,可以根据自己的需求进行设置# 这里选择最低支持android-14, arm架构,生成的so库是放在# libs/armeabi文件夹下的,若针对x86架构,要选择arch-x86PLATFORM=$NDK/platforms/android-14/arch-arm# 工具链的路径,根据编译的平台不同而不同# arm-linux-androideabi-4.9与上面设置的PLATFORM对应,4.9为工具的版本号,# 根据自己安装的NDK版本来确定,一般使用最新的版本TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64function build_one{./configure \ --prefix=$PREFIX \ --enable-shared \ --enable-demuxer \ --disable-static \ --disable-programs \ --disable-encoders \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avfilter \ --disable-swscale \ --disable-muxers \ --disable-devices \ --disable-filters \ --disable-parsers \ --disable-doc \ --disable-postproc \ --disable-w32threads \ --disable-avdevice \ \ --disable-everything \ --enable-protocol=pipe \ --enable-hwaccels \ --enable-memalign-hack \ --enable-asm \ --enable-pthreads \ --enable-network \ \ --enable-decoder=h264 \ --enable-decoder=aac \ \ --enable-demuxer=flv \ --enable-demuxer=mov \ \ --enable-protocol=rtmp \ --enable-protocol=http \ --enable-protocol=rtsp \ \ --disable-zlib \ --disable-bzlib \ --enable-pic \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$PLATFORM \ --extra-cflags="-I./include" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmakemake install}# arm v7vfpCPU=armvOPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "PREFIX=./android/$CPU-vfpADDITIONAL_CONFIGURE_FLAG=build_one# CPU=armv# PREFIX=$(pwd)/android/$CPU# ADDI_CFLAGS="-marm"# build_one#arm v6#CPU=armv6#OPTIMIZE_CFLAGS="-marm -march=$CPU"#PREFIX=./android/$CPU #**********/=#build_one#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 v7n#CPU=armv7-a#OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8"#PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG=--enable-neon#build_one#arm v6+vfp#CPU=armv6#OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"#PREFIX=./android/${CPU}_vfp #ADDITIONAL_CONFIGURE_FLAG=#build_one和刚刚一样,执行./build_android.sh或者./build_android_full.sh命令。完!
同时,脚本里也有注释,大家可以结合博文和注释去理解。
阅读全文
0 0
- ffmpeg编译android的so库
- Ubuntu下编译android所需ffmpeg的so库
- Android最简单的基于FFmpeg的例子(三)---编译FFmpeg成一个SO库
- Android最简单的基于FFmpeg的例子(三)---编译FFmpeg成一个SO库
- FFmpeg第一篇之Android平台上的so编译
- Android最简单的基于FFmpeg的例子(二)---测试编译好的SO库
- Android 编译FFmpeg成单独so库(验证可用)
- Android FFMPEG .so 编译过程记录
- Window 平台 FFmpeg Android .so文件编译
- ubuntu 平台 FFmpeg Android .so文件编译
- FFmpeg编译Android/Linux移植库,打包成一个ffmpeg.so
- ffmpeg android so库使用
- Linux FFmpeg 编译so动态库
- FFmpeg编译.so
- 从0到1手撸FFmpeg播放器[1]:FFmpeg的so库编译
- Android编译调用FFmpeg API,自己写方法,编译so库
- 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库(三).so文件编译过程问题的解决
- android 移植ffmpeg后so库的使用
- Android 禁止系统键盘和第三方键盘的方法(自撸一个自定义键盘遇到的坑)
- code[vs]1202 求和
- 绩效管理评分功能实现知识点归纳
- 43STL之集合算法
- swift3.1 快速上手系列(三)
- ffmpeg编译android的so库
- Java判断对象是否为空(包括null ,"")
- ui设计-文案(CW)
- 数组,数组API
- ACdream 1100 瑶瑶饿了(最短路+dp)
- boost交叉编译
- mysql常用语句、命令(增删改查功能)
- Unity投影(Raycast)相关的一些事
- 指定tomcat运行时JDK版本