android ubuntu编译ffmpeg
16lz
2021-01-26
1.下载ffmpeg的源代码
2.新建脚本编译文件build_android.sh,如果要编译其他cpu格式,修改cpu处的赋值即可
#!/bin/bashmake clean# NDK的路径,根据自己的安装位置进行设置export NDK=/home/gjh/android-ndk-r10eSYSROOT=$NDK/platforms/android-19/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64#配置工具链function build_one{./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffserver \ --enable-cross-compile \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG}CPU=armPREFIX=$(pwd)/android/$CPUADDI_CFLAGS="-marm"build_one
3.修改源代码中的configure文件,目的是为了后续脚本生成带so文件的编译二进制文件
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)'
3.利用命令行安装编译文件和dos2unix文件,并修改编译脚本和configure的权限,依次打入下列的代码即可
sudo apt-get install bison gcc-multilib g++-multilibsudo apt install dos2unixchmod +x ./build_android.shchmod +x ./configuredos2unix ./build_android.shdos2unix ./configure
4.执行脚本编译文件,如果没有执行第三步直接跑的话可能会在命令行中找不到这个脚本文件或者执行无效。照例在命令行中依次执行下面3行代码,当然有些脚本直接在脚本文件后全执行了还加上多线程,这个自己看着办。
./build_android.shmake make install
5.执行结束后,如果能在ffmepg源代码文件夹中看到android文件夹就算编辑成功了。
如果在第四部中报了下面的异常也没关系,不影响最终的编译结果。
arm-linux-androideabi-pkg-config not found
更多相关文章
- android保存文件到sd卡,读取和清空记录功能(可以用来保存用户名和
- 在AMD64 位ubuntu8上android source code compile 过程
- Android-->AndroidManifest.xml 文件
- Unable to get buffer of resource asset file
- Android用户界面优化-Android(安卓)SlidingMenu菜单栏程序设计开
- Android(安卓)studio aar文件的打包过程和使用方法
- 使用Adobe Flash Builder Burrito创建AIR For Google Android应
- eclipse下开发android应用的几个常用插件
- Android学习之反编译工具介绍