Windows平台编译FFMPEG 3.X版本

1. 安装MSYS2,依次执行如下三个命令

    pacman -Syu  

    pacman -Su

    pacman -S --needed base-devel mingw-w64-x86_64-toolchain

2. 下载 NDK,一定要使用低版本的。 比如使用android-ndk-r17c版本。

2. 下载ffmpeg-3.2.15源代码,解压缩到ffmpeg-3.2.15目录

3.新建脚本文件build_android.sh,保存在ffmpeg-3.2.15目录。build_android.sh编译脚本内容如下:

 #!/bin/bash

# 设置编译中临时文件目录,不然会报错 unable to create temporary file
export TMPDIR=./temp
mkdir $TMPDIR

# NDK的路径,根据实际安装位置设置
NDK=D:/software/ffmpeg/android-ndk-r17c

# 编译针对的平台,这里选择最低支持android-23, arm架构,生成的so库是放在libs/armeabi文件夹下的,若针对x86架构,要选择arch-x86
SYSROOT=$NDK/platforms/android-23/arch-arm

# 工具链的路径,arm-linux-androideabi-4.9与上面设置的PLATFORM对应,4.9为工具的版本号
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64

ARCH=armv7-a

PREFIX=./output/$ARCH

EXTRA_CFLAGS="-fdata-sections -ffunction-sections -fstack-protector-strong -ffast-math -fstrict-aliasing -march=$ARCH -D__ANDROID_API__=23 -isystem $NDK/sysroot/usr/include -isystem $NDK/sysroot/usr/include/arm-linux-androideabi"

EXTRA_LDFLAGS="-Wl,--gc-sections -Wl,-z,relro -Wl,-z,now"

function build_one
{
./configure \
--prefix=$PREFIX \
--disable-static \
--enable-shared \
--enable-small \
--enable-runtime-cpudetect \
--disable-programs \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--enable-pthreads \
--disable-decoders \
--enable-decoder=h264_mediacodec \
--disable-encoders \
--disable-hwaccels \
--enable-hwaccel=h264_mediacodec \
--disable-parsers \
--enable-parser=h264 \
--disable-demuxers \
--disable-muxers \
--disable-protocols \
--disable-filters \
--disable-bsfs \
--disable-indevs \
--disable-outdevs \
--enable-jni \
--enable-mediacodec \
--arch=$ARCH \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--target-os=android \
--disable-symver \
--enable-asm \
--enable-neon \
--extra-cflags="$EXTRA_CFLAGS" \
--extra-ldflags="$EXTRA_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}

build_one

 

4. 执行脚本

运行mingw64.exe,切换到build_android.sh所在目录,执行   ./build_android.sh,等待编译结果。

编译完成后,动态链接库,保存在build_android.sh脚本中PREFIX定义的目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值