admin 管理员组

文章数量: 887019

用windows的ubuntu子系统来编译,这样会省很多麻烦和操作非常简便,比如不用去安装VMware和下载linux系统安装,全部文件代码都是在Windows的磁盘下,可以直接编辑。

1、安装ubuntu子系统,已安装的请忽略这一步,参考链接:Windows10安装Ubuntu桌面子系统,新装的系统很需要装一些工具,比如git、vim、make等。

2、下载ffmpeg源码和ndk。使用git下载源码,这样可以用命令来切换想要的哪一个版本,用的是3.2分支,FFmpeg下载地址。ndk使用android-ndk-r14b,ndk下载地址。

3、修改ffmpeg的configure,对应的字段修改为以下内容,因为android只能加载*.so结尾的动态库。

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'

4、编辑适用arm的脚本。编译脚本要适配对应ffmpeg版本和ndk版本,不然一些编译链工具会找不到而编译失败。

#!/bin/bash
make clean
export NDK=/mnt/f/13_Android/01ffmpeg/android-ndk-r14b
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-marm"
./configure --target-os=linux \
--prefix=$PREFIX --arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install

本文标签: 子系统 Windows Ubuntu ffmpeg