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

Rav*_*ela 47 java video android ffmpeg android-studio

我想FFMPEG在android studio中配置,但我无法获得任何文档或链接.许多FFMPEGlib 上的Github 可用于android,但都是旧版本.以及如何在android中运行命令?我想在配置FFMPEG后知道如何运行FFMPEG命令.帮助我.谢谢你.

我使用下面的链接但没有成功的最新版本.

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

Jan*_*iya 36

最新版本FFMPEG是3.1.1,刚刚在12天之前发布.所以我认为没有像这个旧版本那样容易获得的演示.

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

如何为Android构建FFmpeg

  1. 使用Android NDK r10编译FFmpeg 2.3
  2. 如何使用android-ndk-r10d在windows上编译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.这已经很老了所以你只需要更改这里提到的版本.因为FFMPEG它将是3.1.1&NDK r12b.


建立FFMPEG与NDK R12B:

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

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

  3. 更新配置文件:使用文本编辑器打开ffmpeg-3.1.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)'
    
    Run Code Online (Sandbox Code Playgroud)

    这会导致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)
    
    Run Code Online (Sandbox Code Playgroud)
  4. 构建ffmpeg:将以下文本复制到文本编辑器,并将其保存为ffmpeg_3.1.1文件夹中的build_android.sh.

        #!/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
    
    Run Code Online (Sandbox Code Playgroud)

    保存文件后,转到该文件所在的目录并执行以下命令,

    sudo chmod +x build_android.sh
    
    Run Code Online (Sandbox Code Playgroud)

    然后通过命令执行脚本,

    ./build_android.sh
    
    Run Code Online (Sandbox Code Playgroud)
  5. 构建输出:构建可能需要一段时间才能完成,具体取决于您的计算机速度.一旦完成,你应该能够找到一个文件夹$ NDK/sources/ffmpeg-3.1.1/android,其中包含arm/lib和arm/include文件夹.

  6. 为您的项目提供ffmpeg库

上面的步骤已经过全面测试,我在我的机器上执行它们,并且构建成功.为了写这个答案我已经从这篇文章中引用了如何使用NDK r9构建ffmpeg 但是因为它是旧版本我自己做了一些修改.

打开询问任何疑问.

  • 您好我正在使用ubundu并在执行此行./build_android.sh后显示为showinng/configure:3244:./ configure:语法错误:重定向意外./build_android.sh:第8行:--prefix =/home/techniche/Android /ndk/android-ndk-r12b/sources/ffmpeg-3.1.3/android/arm:没有这样的文件或目录 (2认同)
  • 嗨@jankigadhiya ..我发现执行build_android.sh时出现问题:./ build_android.sh:第8行: - prefix =/home/controller/Android/Sdk/ndk-bundle/ffmpeg-3.2.2/android/arm : 没有相应的文件和目录 (2认同)

Tap*_*nHP 5

你有没有看到这个链接:Writingminds的FFmpeg库在这个链接中提供了关于它的所有解释

该文库的最新版本是在这里写的https://github.com/WritingMinds/ffmpeg-android-java/releases在此输入图像描述

如果你想使用任何库的最新版本,你可以直接进行,build.gradle因为如果没有更新任何库,可以看到并且可以更新build.gradle,我总是为许多库执行此操作以获取最新版本.

对于FFMpeg中的gradle,请使用此选项

compile 'com.writingminds:FFmpegAndroid:0.3.2'
Run Code Online (Sandbox Code Playgroud)

此链接提供了更多类似于它的库 https://android-arsenal.com/details/1/925

另外我建议你读这个阙,这个阙

如果你想使用最新版本的原始图书馆,请访问:FFmpeg [最新版本将在这里 ]

要添加本机代码,这些博客可能会帮助您

http://ffmpeg-android.blogspot.in/

http://www.roman10.net/2011/07/17/how-to-build-android-applications-based-on-ffmpeg-by-an-example/