徐高翔的个人网站

Android版ffmpeg的编译

2018-05-15

软硬件环境

  • ubuntu 18.04 64bit
  • NDK r15c
  • ffmpeg git latest
  • MI MIX 2S

NDK安装

下载NDK工具包, https://developer.android.com/ndk/downloads/,解压之后放到某个路径下,我这里是/home/xugaoxiang/Tools/NDK/

安装独立工具链

利用NDK工具包中自带的安装脚步安装独立的工具链,当然也可以使用NDK包下的工具链,本文也是用的NDK下的。那为什么要提这个呢?独立工具链的好处,是可以根据自己的需要和编译的目标安装,一次安装,永久使用

1
$ANDROID_NDK/build/tools/make-standalone-toolchain.sh --install-dir=$ANDROID_NDK/../toolchains/21-4.9 --platform=android-21 --toolchain=arm-linux-androideabi-4.9

设置环境变量

1
2
export ANDROID_NDK=/home/xugaoxiang/Tools/NDK/android-ndk-r15c
export SYSROOT=$ANDROID_NDK/platforms/android-21/arch-arm

下载ffmpeg最新的源码

1
git clone https://git.ffmpeg.org/ffmpeg.git

编译参数

ffmpeg自身功能的编译参数,可以根据实际情况修改,比如对x264x265的支持等

1
2
cd ffmpeg
./configure --arch=arm --cpu=armv7-a --cross-prefix="$ANDROID_NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-" --sysroot=$SYSROOT --target-os=android --prefix=$PREFIX --disable-static --enable-shared --disable-asm --disable-doc --libdir=$PREFIX/libs/armeabi-v7a --incdir=$PREFIX/includes/armeabi-v7a --pkgconfigdir=$PREFIX/pkgconfig/armeabi-v7a

编译安装

1
2
make 
make install

编译完成后会在ffmpeg/android-build下生成binincludeslibs等目录

android_ffmpeg_01

源码下载

完整的工程放在了github上, https://github.com/xugaoxiang/ffmpeg_for_android,上述步骤都写在了一个脚本里便于操作

参考资料

  1. https://git.ffmpeg.org/ffmpeg.git
  2. https://trac.ffmpeg.org/wiki/CompilationGuide/Android
  3. https://github.com/WritingMinds/ffmpeg-android
  4. https://developer.android.com/ndk/guides/standalone_toolchain
  5. https://medium.com/@karthikcodes1999/cross-compiling-ffmpeg-4-0-for-android-b988326f16f2

推荐文章(由hexo文章推荐插件驱动)

使用支付宝打赏
使用微信打赏

请博主喝咖啡!