最新版本是 3.1.1 1 刚刚发布,12 天之前。所以我认为没有像这个旧演示那样现成的演示。FFMPEG
我们需要自己构建库。我发现的一些问题只是粘贴在这里,可能会对你有所帮助。(未测试)FFMPEG
如何为 Android 构建 FFmpeg
- 使用 Android NDK r10 编译 FFmpeg 2.3
- 如何在windows上使用android-ndk-r10d编译ffmpeg-2.5.3
- 如何在带有cygwin和android ndk r9c的Windows上编译ffmpeg-2.2.2
- 如何在Windows中使用android-ndk-r10d构建ffmpeg
您需要通过下载Android NDK和最新版本的FFMPEG
自行编译它。
还有一个教程:如何为Android构建FFmpeg。这已经很旧了,所以你只需要改变这里提到的版本。因为它将是和NDK,它将是.FFMPEG
3.1.1
r12b
使用 NDK r12b 构建 FFMPEG
:
下载 Android NDK :最新版本的 Android NDK 可以在 Android NDK 网站上下载。在撰写此答案时,最新版本是NDK r12。只需解压缩存档
下载ffmpeg源代码:FFMPEG源代码可以从ffmpeg网站下载。最新的稳定版本是3.1.1(在撰写本文时)。下载源代码并将其解压缩到$NDK/源文件夹中。
-
更新配置文件 :使用文本编辑器打开 ffmpeg-3.1.1/配置文件,然后找到以下行。
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)'
这会导致将 ffmpeg 共享库编译为 libavcodec.so。(例如libavcodec.so.55),它与Android构建系统不兼容。因此,我们需要将上面的行替换为以下行。
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)
-
Build ffmpeg :将以下文本复制到文本编辑器,并将其另存为build_android.sh ffmpeg_3.1.1 文件夹中。
#!/bin/bash
NDK=$HOME/Desktop/adt/android-ndk-r9
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
function build_one
{
./configure
--prefix=$PREFIX
--enable-shared
--disable-static
--disable-doc
--disable-ffmpeg
--disable-ffplay
--disable-ffprobe
--disable-ffserver
--disable-avdevice
--disable-doc
--disable-symver
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-
--target-os=linux
--arch=arm
--enable-cross-compile
--sysroot=$SYSROOT
--extra-cflags="-Os -fpic $ADDI_CFLAGS"
--extra-ldflags="$ADDI_LDFLAGS"
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
保存文件后,转到此文件所在的目录并执行以下命令,
sudo chmod +x build_android.sh
然后通过命令执行脚本,
./build_android.sh
构建输出 :生成可能需要一段时间才能完成,具体取决于您的计算机速度。完成后,您应该能够找到一个文件夹$NDK/sources/ffmpeg-3.1.1/android,其中包含arm/lib和arm/include文件夹。
-
使 ffmpeg 库可用于您的项目
上面的步骤已经过全面测试,我在计算机上执行了这些步骤,并且构建成功了。为了写这个答案,我从这篇文章中参考了 如何使用NDK r9构建ffmpeg 但是对于旧版本,我自己做了一些更正。
开放询问任何疑问。