Android(安卓)FFMPEG 编译脚本
16lz
2021-01-24
首先下载 FFmpeg
(如果想将FFMPEG安装到系统里请看 Ubuntu16.04 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)'
保存之后
在configure 新建脚本 build_ffmpeg_for_android.sh 增加权限 chmod 777 build_ffmpeg_for_android.sh
build_ffmpeg_for_android.sh脚本的内容如下:
#!/bin/bashLIB_DIR=$(pwd)/Android;# ffmpeg编译输出前缀PREFIX=$LIB_DIR/ffmpeg/$CPU#设置你自己的NDK位置#NDK_HOME=/Users/superlea/android-ndk-r10e#设置你自己的平台,这上linux上的,Mac换成darwin-x86_64#NDK_HOST_PLATFORM=darwin-x86_64#设置你自己的NDK位置NDK_HOME=/home/chencl/SoftWare/android-ndk-r13bNDK_HOST_PLATFORM=linux-x86_64COMMON_OPTIONS="\ --target-os=android \ --disable-static \ --extra-libs=-lgcc \ --enable-shared \ --enable-small \ --disable-programs \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-doc \ --disable-symver \ --disable-asm \ "function build_android { ./configure \ --libdir=${PREFIX}/libs/armeabi-v7a \ --incdir=${PREFIX}/includes/armeabi-v7a \ --pkgconfigdir=${PREFIX}/pkgconfig/armeabi-v7a \ --arch=arm \ --cpu=armv7-a \ --cross-prefix="${NDK_HOME}/toolchains/arm-linux-androideabi-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/arm-linux-androideabi-" \ --sysroot="${NDK_HOME}/platforms/android-19/arch-arm/" \ --extra-cflags="-march=armv7-a -mfloat-abi=softfp -mfpu=neon" \ --extra-ldexeflags=-pie \ ${COMMON_OPTIONS} make clean make -j8 && make install ./configure \ --libdir=${PREFIX}/libs/arm64-v8a \ --incdir=${PREFIX}/includes/arm64-v8a \ --pkgconfigdir=${PREFIX}/pkgconfig/arm64-v8a \ --arch=aarch64 \ --cpu=armv8-a \ --cross-prefix="${NDK_HOME}/toolchains/aarch64-linux-android-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/aarch64-linux-android-" \ --sysroot="${NDK_HOME}/platforms/android-21/arch-arm64/" \ --extra-ldexeflags=-pie \ ${COMMON_OPTIONS} make clean make -j8 && make install ./configure \ --libdir=${PREFIX}/libs/x86 \ --incdir=${PREFIX}/includes/x86 \ --pkgconfigdir=${PREFIX}/pkgconfig/x86 \ --arch=x86 \ --cpu=i686 \ --cross-prefix="${NDK_HOME}/toolchains/x86-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/i686-linux-android-" \ --sysroot="${NDK_HOME}/platforms/android-19/arch-x86/" \ --extra-ldexeflags=-pie \ ${COMMON_OPTIONS} make clean make -j8 && make install ./configure \ --libdir=${PREFIX}/libs/x86_64 \ --incdir=${PREFIX}/includes/x86_64 \ --pkgconfigdir=${PREFIX}/pkgconfig/x86_64 \ --arch=x86_64 \ --cpu=x86_64 \ --cross-prefix="${NDK_HOME}/toolchains/x86_64-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/x86_64-linux-android-" \ --sysroot="${NDK_HOME}/platforms/android-21/arch-x86_64/" \ --extra-ldexeflags=-pie \ ${COMMON_OPTIONS} make clean make -j8 && make install};build_android
在跟补录运行 build_ffmpeg_for_android.sh 耗时较长
之后生成的有 Android文件夹,查看Android文件夹(Android文件夹加锁 执行sudo chmod 777 -R Android/ )
目录结构如下:
其中 libs 文件为各个平台的下的支持库.
├── includes #头文件│ ├── arm64-v8a│ ├── armeabi-v7a│ ├── x86│ └── x86_64├── libs #库文件│ ├── arm64-v8a│ │ ├── libavcodec.so│ │ ├── libavdevice.so│ │ ├── libavfilter.so│ │ ├── libavformat.so│ │ ├── libavutil.so│ │ ├── libswresample.so│ │ └── libswscale.so│ ├── armeabi-v7a│ │ ├── libavcodec.so│ │ ├── libavdevice.so│ │ ├── libavfilter.so│ │ ├── libavformat.so│ │ ├── libavutil.so│ │ ├── libswresample.so│ │ └── libswscale.so│ ├── x86│ │ ├── libavcodec.so│ │ ├── libavdevice.so│ │ ├── libavfilter.so│ │ ├── libavformat.so│ │ ├── libavutil.so│ │ ├── libswresample.so│ │ └── libswscale.so│ └── x86_64│ ├── libavcodec.so│ ├── libavdevice.so│ ├── libavfilter.so│ ├── libavformat.so│ ├── libavutil.so│ ├── libswresample.so│ └── libswscale.so└── pkgconfig ├── arm64-v8a ├── armeabi-v7a ├── x86 └── x86_64
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android与mqtt双向SSL认证
- android 制作开机logo(bootanimation.zip)
- 转 android背景选择器selector用法汇总
- android文件、资源读取总结
- android资源文件详细介绍