1、下载FFmpeg 4.2.1的源码,下载Android NDK r20,安装yasm

sudo apt-get install yasm

2、解压缩源码包和Android NDK
3、修改ffmpeg-4.2.1文件夹下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)'

4、在ffmpeg-4.2.1文件夹下新建脚本文件build_android.sh:

#!/bin/bashNDK=$HOME/android-ndk-r20
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64/
API=29function build_android
{echo "The Compiling FFmpeg for $CPU is starting."./configure \--prefix=$PREFIX \--disable-neon \--disable-hwaccels \--disable-gpl \--disable-postproc \--enable-shared \--enable-jni \--disable-mediacodec \--disable-decoder=h264_mediacodec \--disable-static \--disable-doc \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-avdevice \--disable-doc \--disable-symver \--cross-prefix=$CROSS_PREFIX \--target-os=android \--arch=$ARCH \--cpu=$CPU \--cc=$CC--cxx=$CXX--enable-cross-compile \--sysroot=$SYSROOT \--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmake -j2make installecho "The Compilation of FFmpeg for $CPU is completed."
}#armv8-a
ARCH=arm64
CPU=armv8-a
CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-march=$CPU"
build_android#armv7-a
ARCH=arm
CPU=armv7-a
CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang
CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
build_android#x86
ARCH=x86
CPU=x86
CC=$TOOLCHAIN/bin/i686-linux-android$API-clang
CXX=$TOOLCHAIN/bin/i686-linux-android$API-clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/i686-linux-android-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
build_android#x86_64
ARCH=x86_64
CPU=x86-64
CC=$TOOLCHAIN/bin/x86_64-linux-android$API-clang
CXX=$TOOLCHAIN/bin/x86_64-linux-android$API-clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/x86_64-linux-android-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-march=$CPU -msse4.2 -mpopcnt -m64 -mtune=intel"
build_android

Ubuntu 16.04系统中编译安装FFmpeg 4.2.1(Android NDK r20)相关推荐

  1. linux下如何安装自带编译器的codeblocks,在Ubuntu 16.04系统中使用PPA源安装Code Blocks的方法...

    本文介绍在Ubuntu 16.04操作系统中使用PPA源安装Code Blocks的方法,可以先参考在Ubuntu系统中安装Code::Blocks的方法一文. 使用PPA源安装Code Blocks ...

  2. 在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1

    目录 一 安装前的准备 二 编译并安装OpenCV 4.1.1 注:原创不易,转载请务必注明原作者和出处,感谢支持! OpenCV目前(2019-8-1)的最新版本为4.1.1.本文将介绍如何在Ubu ...

  3. Ununtu16.04系统下编译安装ffmpeg、抽帧和计算图片时间点

    ffmpeg是开源的.功能强大的视频.音频.图像处理工具,在最近的工作中,需要从视频中抽取图像,并准确计算每张图片对应在视频播放中的时间点.在网上找了一圈发现,所有的参考资料基本分为两种: 1.通过c ...

  4. Ubuntu 16.04源码编译安装Apache 2.4.25教程

    这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...

  5. Ubuntu 16.04 源码编译安装 uhd gnuradio

    Ubuntu 16.04 源码编译安装 uhd & gnuradio 环境介绍 UHD安装 1 安装依赖 2 编译 3 测试安装结果 4 配置 USB gnuradio安装 1 安装依赖 2 ...

  6. 在Ubuntu 16.04系统中,将Logitech G920方向盘连接到Carla服务器

    注: 电脑是win10 + Ubuntu 16.04双系统 我们用Logitech g29方向盘的程序来模拟G920方向盘,所以接下来运行出现g29等字样,是没有问题的 1.jstest-gtk 1) ...

  7. linux终端装什么系统下载软件,在Ubuntu 18.04系统中下载安装Termite终端的方法

    以下介绍在Ubuntu 18.04系统或是Ubuntu 16.04系统中安装Termite终端的方法,目前Termite在默认存储库中不可用,必须从源代码安装.Termite是一个以键盘为中心的基于V ...

  8. Ubuntu 16.04系统实用插件安装方法

    Ubuntu 16.04系统实用插件安装方法 Ubuntu 16.04 系统实用插件安装方法链接 搜狗输入法 链接: https://blog.csdn.net/u010648921/article/ ...

  9. Ubuntu 16.04系统中利用CUDA安装更新NVIDIA显卡驱动程序的方法

    严正声明:本文系作者davidhopper原创,未经许可,不得转载. 在ThinkPad系列笔记本电脑中使用过Ubuntu 16.04系统的同学都知道,NVIDIA显卡驱动程序特别难安装.以我使用的T ...

最新文章

  1. java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法
  2. C++ | 蓝桥杯2021年第十二届卡片问题(源代码:C语言/C++/Python)
  3. 1-2docker-基本的使用
  4. OpenVINO 2019 R2.0 Custom Layer Implementation for linux(1)
  5. Python并发编程理论篇
  6. 一分钟了解阿里云产品:高速通道
  7. Android App自动更新解决方案(DownloadManager)
  8. java分子分母题,JAVA黄金分割点练习题
  9. BIO、NIO、AIO的简单个人理解,同步异步和阻塞非阻塞的简单理解
  10. 统计细菌基因组ORF
  11. c语言图书管理系统报告书,c语言图书管理系统实验报告_c语言程序设计报告 图书管理平台_c语言 图书管理平台...
  12. Java数组集合转换
  13. 讲师靓照大集合,为最喜爱的讲师投票吧!iOS DevCamp Android DevCamp
  14. matlab中基于传递函数或者状态方程的幅频特性分析
  15. 英语发音规则---字母组合ou的发音规律
  16. Google秘密入口
  17. 团体程序设计天梯赛-练习集 L1-059 敲笨钟 (20分)
  18. 线性代数(四十) : 正交补与正交投影
  19. linux C++ 调用Matlab-engin使用记录
  20. 硬件设计:电路防护--陶瓷气体放电管(GDT)

热门文章

  1. 运用matplotlib使数据可视化(绘制折线图)
  2. centos部署微博_Centos7下部署Python项目
  3. python异或查询脚本
  4. 微信小程序web-view环境下H5跳转小程序页面方法
  5. 抄袭美国互联网的开放和创新精神
  6. matlab中imadjust,matlab中imadjust函数的作用及应用举例
  7. 2022.3.4----第一篇其实并只能算是日记
  8. .../libopencv_freetype.so .. undefined reference to `hb_buffer_get_glyph_infos‘
  9. Android-技术的下半场,这里有份超全Android体系化进阶学习图谱
  10. 10024---常用Impex