如何编译最新的 FFmpeg 库 for Android



努力将当前FFmpeg的工作和一般最佳实践构建放在一起。似乎没有最新的文档或教程。确实存在的内容充满了无法正常工作的过时链接或构建脚本。

构建独立的 NDK 工具链

下载最新的 NDK 并运行make_standalone_toolchain.py

配置 FFmpeg

./configure 
--cross-prefix=arm-linux-androideabi- 
--sysroot="${ANDROID_STANDALONE_NDK}/sysroot" 
--target-os=linux 
--arch=arm 
--cpu=cortex-a8 
--enable-cross-compile 
--enable-pic 
--enable-shared 
--extra-cflags="-fpic"

然后当然

make -j4

您可能不想编译很多组件,因此您需要查看要启用/禁用的内容./configure --help

找到解决方案!

请检查以下链接:

  • https://github.com/WritingMinds/ffmpeg-android
  • https://github.com/WritingMinds/ffmpeg-android-java
  • http://writingminds.github.io/ffmpeg-android/
  • http://writingminds.github.io/ffmpeg-android-java/

在阅读了这么多帖子之后,我设法找到了为安卓生成 ffmpeg 库的方法

下载下面提到的代码并将其作为 ffmpeg.sh 并在您的 ffmpeg 源根文件夹中执行相同的代码并执行make

#!/bin/bash
BASEDIR=$(pwd)
TOOLCHAIN_PREFIX=/opt/android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
CFLAGS='-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all'
LDFLAGS='-Wl,-z,relro -Wl,-z,now -pie'
./configure 
--target-os=linux 
--cross-prefix=/opt/android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi- 
--arch=arm 
--cpu=armv7-a 
--enable-runtime-cpudetect 
--sysroot=/opt/android-ndk-r9b/platforms/android-9/arch-arm/ 
--enable-pic 
--enable-pthreads 
--enable-cross-compile 
--disable-debug 
--disable-ffserver 
--enable-version3 
--enable-hardcoded-tables 
--disable-ffplay 
--disable-ffprobe 
--enable-gpl 
--enable-yasm 
--disable-doc 
--disable-shared 
--enable-static 
--extra-cflags="-I${TOOLCHAIN_PREFIX}/include $CFLAGS" 
--extra-ldflags="-L${TOOLCHAIN_PREFIX}/lib $LDFLAGS"

详细信息,请访问 https://sites.google.com/site/greateindiaclub/mobil-apps/android/buildffmpegprebuiltlibraryforanandroid

最新更新