Windows环境编译FFmpeg(多包)
2018-03-27 10:52
405 查看
编译环境是win10,ndk r14,ffmpeg3.0
1. 下载工具包
首先自然是下载NDK及FFmpeg并解压,Windows下编译需要下载MinGW下载完毕后MinGW需要安装,安装好之后是个下载管理器,选择安装选项的时候要选上mingw-developer-toolkit,mingw32-gcc-ada,msys-base三项。
MinGW.png
2.编辑FFmpeg目录里的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)'
这是为了修改文件名格式
3. 创建build_android.sh文件作为编译脚本
#!/bin/bash # NDK的路径,根据实际安装位置设置 NDK=D:/java/androidstudio/sdk/ndk-bundle # 编译针对的平台,这里选择最低支持android-14, arm架构,生成的so库是放在libs/armeabi文件夹下的,若针对x86架构,要选择arch-x86 PLATFORM=$NDK/platforms/android-14/arch-arm # 工具链的路径,arm-linux-androideabi-4.9与上面设置的PLATFORM对应,4.9为工具的版本号 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-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$PLATFORM \ --extra-cflags="-I$PLATFORM/usr/include" \ make clean make -j4 make install } # arm v7vfp CPU=armv7-a OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU " PREFIX=./android/$CPU ADDITIONAL_CONFIGURE_FLAG= build_one # CPU=armv # PREFIX=$(pwd)/android/$CPU # ADDI_CFLAGS="-marm" # build_one #arm v6 #CPU=armv6 #OPTIMIZE_CFLAGS="-marm -march=$CPU" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG= #build_one #arm v7vfpv3 # CPU=armv7-a # OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU " # PREFIX=./android/$CPU # ADDITIONAL_CONFIGURE_FLAG= # build_one #arm v7n #CPU=armv7-a #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG=--enable-neon #build_one #arm v6+vfp #CPU=armv6 #OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU" #PREFIX=./android/${CPU}_vfp #ADDITIONAL_CONFIGURE_FLAG= #build_one } # arm v7vfp CPU=armv7-a OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU " PREFIX=./android/$CPU-vfp ADDITIONAL_CONFIGURE_FLAG= build_one # CPU=armv # PREFIX=$(pwd)/android/$CPU # ADDI_CFLAGS="-marm" # build_one #arm v6 #CPU=armv6 #OPTIMIZE_CFLAGS="-marm -march=$CPU" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG= #build_one #arm v7vfpv3 # CPU=armv7-a # OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU " # PREFIX=./android/$CPU # ADDITIONAL_CONFIGURE_FLAG= # build_one #arm v7n #CPU=armv7-a #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG=--enable-neon #build_one #arm v6+vfp #CPU=armv6 #OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU" #PREFIX=./android/${CPU}_vfp #ADDITIONAL_CONFIGURE_FLAG= #build_one
其中要注意TMPDIR、NDK、TOOLCHAIN、--cross-prefix对应实际目录地址,可别漏了。
./configure部分根据自己的需要调整功能。全要的话库文件未免太大。
--disable-avdevice \ 这一行控制了不输出libavdevice.so文件,即最后的输出目录中不存在这个.so文件
--enable-shared 这一行启动动态编译 --disable-static 这一行禁用静态编译
4.编译
运行C:\MinGW\4000
msys\1.0目录下的msys.bat,cd到ffmpeg目录执行build_android.sh
./build_android.sh
5. 结果
等待十几分钟之后,控制台输出如下结果:结果.png
6. 文件
在ffmpeg-3.3.6文件夹下生成一个android目录,目录下对应的是不同的架构,这里只生成了armv7-a这个目录,include中是头文件,lib中是生成.so文件,用的时候使用文件名贵上带数字的.so文件。文件.png
详情.png
相关文章推荐
- windows环境 cygwin android-ndk-r7 编译 ffmpeg
- ffmpeg 在windows环境下编译
- FFmpeg在windows下的编译,搭建mingw+msys环境,含mingw+msys下载 [转载,有改动]
- FFMPEG在windows平台编译的详细过程,包括环境安装
- ffmpeg 0.8.7在windows环境mingw环境的编译
- FFmpeg在windows下的编译,搭建mingw+msys环境,含mingw+msys下载 [转载,有改动]
- FFMpeg 在Windows 环境下的编译
- FFmpeg在windows下的编译,搭建mingw+msys环境,含mingw+msys下载
- windows平台MingW环境下编译FFMPEG及X264
- FFMPEG在windows平台编译的详细过程,包括环境安装
- FFMpeg在Windows环境下的编译
- windows环境下用ndk编译出供android的ffmpeg
- FFMPEG在windows平台编译的详细过程,包括环境安装 分类: ffmpeg-SDL-VLC-Live555 2013-08-01 11:23 845人阅读 评论(0) 收藏
- 基于windows平台,dev-c++编译工具,搭建ffmpeg 开发环境
- windows环境下android studio 2.3 NDK编译FFmpeg
- FFMPEG在windows平台编译的详细过程,包括环境安装
- QT开发,在 windows 环境下编译安装 FFmpeg
- Windows环境编译FFmpeg(单包)
- FFMPEG在windows平台编译的详细过程,包括环境安装
- FFmpeg在windows下的编译,搭建mingw+msys环境,含mingw+msys下载 [转载,有改动]