Android:如何在Android Studio中配置FFMPEG最新版本?

2022-08-31 22:11:34

我想在Android工作室中配置,但我无法获得任何文档或链接。Github上有许多可用于Android的lib,但都是旧版本。如何在安卓中运行命令?我想知道配置后,我们如何运行命令。帮帮我。谢谢提前。FFMPEGFFMPEGFFMPEGFFMPEG

我使用了下面的链接,但没有成功进入最新版本。

http://writingminds.github.io/ffmpeg-android-java

https://github.com/WritingMinds/ffmpeg-android-java

https://github.com/havlenapetr/FFMpeg

https://github.com/appunite/AndroidFFmpeg

https://github.com/WritingMinds/ffmpeg-android


答案 1

最新版本是 3.1.1 1 刚刚发布,12 天之前。所以我认为没有像这个旧演示那样现成的演示FFMPEG

我们需要自己构建库。我发现的一些问题只是粘贴在这里,可能会对你有所帮助。(未测试)FFMPEG

如何为 Android 构建 FFmpeg

  1. 使用 Android NDK r10 编译 FFmpeg 2.3
  2. 如何在windows上使用android-ndk-r10d编译ffmpeg-2.5.3
  3. 如何在带有cygwin和android ndk r9c的Windows上编译ffmpeg-2.2.2
  4. 如何在Windows中使用android-ndk-r10d构建ffmpeg

您需要通过下载Android NDK最新版本的FFMPEG自行编译它。

还有一个教程:如何为Android构建FFmpeg。这已经很旧了,所以你只需要改变这里提到的版本。因为它将是和NDK,它将是.FFMPEG3.1.1r12b


使用 NDK r12b 构建 FFMPEG

  1. 下载 Android NDK :最新版本的 Android NDK 可以在 Android NDK 网站上下载。在撰写此答案时,最新版本是NDK r12。只需解压缩存档

  2. 下载ffmpeg源代码:FFMPEG源代码可以从ffmpeg网站下载。最新的稳定版本是3.1.1(在撰写本文时)。下载源代码并将其解压缩到$NDK/源文件夹中。

  3. 更新配置文件 :使用文本编辑器打开 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)
    
  4. 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
    
  5. 构建输出 :生成可能需要一段时间才能完成,具体取决于您的计算机速度。完成后,您应该能够找到一个文件夹$NDK/sources/ffmpeg-3.1.1/android,其中包含arm/lib和arm/include文件夹。

  6. 使 ffmpeg 库可用于您的项目

上面的步骤已经过全面测试,我在计算机上执行了这些步骤,并且构建成功了。为了写这个答案,我从这篇文章中参考了 如何使用NDK r9构建ffmpeg 但是对于旧版本,我自己做了一些更正。

开放询问任何疑问。


推荐