首先配置linux虚拟环境(编译环境),https://blog.csdn.net/afei198409/article/details/88560411

1.下载ffmpeg,官方地址:http://ffmpeg.org/download.html

2.解压后项目结构如下:

 

windows10下编译ffmpeg库(.so和.a)

3.使用命令行运行脚本ffbuild/libversion.sh, ffbuild/pkgconfig_generate.sh, ffbuild/version.sh

4.修改根目录下configure文件

将该文件中的如下四行:
  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)'

5.在根目录下新建tempdir和output文件夹,新建build_android.sh脚本文件(针对Android),内容如下

#!/bin/bash
make clean
export TMPDIR=./tempdir
NDK=D:/Software/AndroidTool/ndk-r10e #注意这里填写的是当前你的ndk安装根目录
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 #这个也是ndk里面对应的目录
PLATFORM=$NDK/platforms/android-19/arch-arm
CPU=arm
PREFIX=./output/$CPU

function build_one
{
./configure \
--target-os=linux \
--prefix=$PREFIX \
--enable-cross-compile \
--enable-runtime-cpudetect \
--disable-asm \
--arch=arm \
--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--disable-stripping \
--nm=$PREBUILT/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--enable-gpl \
--disable-postproc \
--enable-shared \ #这是动态库.so
--enable-static \ #这是静态库.a
--enable-small \
--disable-ffprobe \
--disable-ffplay \
--disable-ffmpeg \
--disable-debug \
--extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a"
}
build_one

make
make install

read -p "Press any key to continue."

6.启动MSYS2 MinGW 64-bit,切换到ffmpeg根目录,输入./build_android.sh运行该脚本,成功后将生成output/arm/include、output/arm/lib和output/arm/share目录。include目录里面是库的头文件,lib目录里包含了生成的库(.so和.a)。

windows10下编译ffmpeg库(.so和.a)

相关文章:

  • 2021-10-30
  • 2021-04-23
  • 2021-09-30
  • 2022-12-23
  • 2022-12-23
  • 2021-04-07
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-22
  • 2021-05-14
  • 2021-05-19
  • 2021-08-18
  • 2022-12-23
  • 2021-04-28
  • 2022-12-23
相关资源
相似解决方案