ffmpeg(一) android ndk编译ffmpeg

来源:互联网 发布:照片扫描软件手机版 编辑:程序博客网 时间:2024/06/08 04:29
参考文章:http://www.dxjia.cn/2016/07/27/how_to_compile_ffmpeg_for_android/本文介绍在ubuntu下编译ffmpeg1.编译环境ubuntu16.04 2.android ndk,可以用android studio下载ndk。本文ndk下载后路径为 /home/pangrui/Android/Sdk/ndk-bundle3.在ffmpeg官网http://ffmpeg.org/download.html#build-linux下载ffmpeg源码。本文下载ffmpeg-3.2.4.tar.bz2并解压4.修改解压后ffmpeg源码的configure文件:SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'修改为:SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'SLIB_INSTALL_LINKS='$(SLIBNAME)'5.在ffmpeg源码里创建文件build_android_arm.sh文件内容如下:其中TMPDIR,NDK,SYSROOT,TOOLCHAIN路劲根据自己实际路劲配置TMPDIR的目录需要自己创建,PREFIX目录为编译之后输出so库的路劲需要自己配置。#!/bin/bashexport TMPDIR=/home/pangrui/ffmpeg/opt/ffmpeg_sources/tempNDK=/home/pangrui/Android/Sdk/ndk-bundleSYSROOT=$NDK/platforms/android-16/arch-arm/TOOLCHAIN=/home/pangrui/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64CPU=armPREFIX=/home/pangrui/ffmpeg/opt/ffmpeg_sources/output/ffmpeg3.2.4ADDI_CFLAGS="-marm"function build_one{./configure \--prefix=$PREFIX \--enable-shared \--disable-static \--disable-doc \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-ffserver \--disable-doc \--disable-symver \--enable-small \--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \--target-os=linux \--arch=arm \--enable-cross-compile \--sysroot=$SYSROOT \--extra-cflags="-Os -fpic $ADDI_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmakemake install}build_one6.cd到ffmpeg源码目录里,执行 sudo ./build_android_arm.sh,注意一定要加sudo 否则可能报权限问题 7.一段时间之后在指定的PREFIX路劲本文为/home/pangrui/ffmpeg/opt/ffmpeg_sources/output下编译出include和lib库即为编译出的ffmpeg的so库,可以在android 项目中使用
0 0
原创粉丝点击