window下使用NDK编译 FFmpeg库
环境准备
1.搭建ndk 环境
2.搭建mingw环境 https://sourceforge.net/projects/mingw-w64/?source=typ_redirect1.![](https://img-blog.csdn.net/20170711135415375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzc4MTAxNTkyOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711135457627?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzc4MTAxNTkyOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
类似于SDK Manager
![](https://img-blog.csdn.net/20170711135553773?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzc4MTAxNTkyOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
勾选如图两个包点击installation
![](https://img-blog.csdn.net/20170711135800321?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdzc4MTAxNTkyOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
点击apply 安装环境 下载过程中会有个别失败 失败的话重新下载单个失败的包就可以
安装完成后在path 下配置环境变量
编译ffmpeg
下载ffmpeg 源码
https://www.ffmpeg.org/download.html
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)'
增加build_android.sh文件
其中NDK,SYSROOT,TOOLCHAIN是你需要更加本地版本进行配置
目录复制过来 分割线和window下是相反 改为““/”
#!/bin/bash
NDK=你对应的ndk目录
SYSROOT=$NDK/platforms/android-24/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
function build_one {
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--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
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
我的配置是
NDK=C:/WorkSoftwear/Sdk/ndk-bundle
SYSROOT=$NDK/platforms/android-25/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
开始编译
安装Mingw成功后,双击目录MinGW/msys/1.0/msys.bat批处理文件,然后切换目录到ffmpeg 下目录 执行
./build_android.sh 运行脚本 开始编译
编译时间会随着电脑情况 大致十几分钟到半个小时之间
![]()
https://github.com/781015928/MyFFmpegLib
这个是我编译好的