操做系統:ubuntu 16.04LTS x86_64linux
ndk版本:android-ndk-r19android
FFmpeg版本:ffmpeg-3.2.2git
安裝好android studio並在tools->Android->SDK Manager 中安裝ndk.github
FFmpeg 到官網 http://ffmpeg.org/ 下載相應版本的源碼。ubuntu
解壓FFmpeg源碼包後,修改ffmpeg-x.x.x/configurebash
將ide
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)'
修改成ui
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS='$(SLIBNAME)'
這樣編譯出來的so命名才符合android的使用。idea
在ffmpeg-x.x.x文件夾下建立相應的腳本文件 build_android_arm.sh、build_android_x86.sh、build_android_arm.sh。spa
#!/bin/bash export TMPDIR=$HOME/temp NDK=$HOME/Android/Sdk/ndk-bundle SYSROOT=$NDK/platforms/android-19/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 CPU=arm PREFIX=$HOME/ffmpeg-android/arm/ ADDI_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_FLAG make clean make make install } build_one
這裏只是用了arm的平臺,若是須要mips,或者x86須要修改build.sh腳本的arch和路徑這裏不贅述了。
chmod o+x build_android_arm.sh ,而後 ./build_android_arm.sh 開始編譯。小等片刻,你就能在PREFIX所標示的路徑下看到 /include 和 /lib兩個文件夾,編譯完成,接下來就能夠用 android studio 建立工程了。