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

时间:2016-03-29 07:07:25

标签: java android android-studio video ffmpeg

我想在android studio中配置FFMPEG,但我无法获得任何文档或链接。许多FFMPEG lib上的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

4 个答案:

答案 0 :(得分:36)

FFMPEG的最新版本是3.1.1,刚刚在12天之前发布。所以我认为没有readily available demo like this old一个。

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

如何为Android构建FFmpeg

  1. Compiling FFmpeg 2.3 with Android NDK r10
  2. How to compile ffmpeg-2.5.3 on windows with android-ndk-r10d
  3. How to compile ffmpeg-2.2.2 on windows with cygwin and android ndk r9c
  4. How to buid ffmpeg with android-ndk-r10d in windows
  5. 您需要自行编译,方法是下载Android NDK& Latest Version of FFMPEG

    还有一个教程:How to Build FFmpeg for Android。这已经很老了所以你只需要更改这里提到的版本。对于FFMPEG,它将是3.1.1& NDK将为r12b

    使用NDK r12b构建FFMPEG

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

    2. 下载ffmpeg源代码:可以从ffmpeg website下载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)'
      

      这导致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. 构建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
      

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

      sudo chmod +x build_android.sh
      

      然后通过命令

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

    6. 为您的项目提供ffmpeg库
    7.   

      上面的步骤已经过全面测试,我在我的机器上进行了测试   构建成功。为了写这个答案我已经拿了   本文的参考文献How to Build ffmpeg with NDK r9   但是对于旧版本我已经对我做了一些更正   自己的。

      公开表示怀疑。

答案 1 :(得分:13)

答案 2 :(得分:5)

您是否看到此链接 Writingminds 的FFmpeg库在this link

中提供了有关它的所有说明

该图书馆写作的最新版本https://github.com/WritingMinds/ffmpeg-android-java/releases enter image description here

如果您想使用任何库的最新版本,可以直接在build.gradle中执行,因为如果没有更新任何库,可以看到它并且可以从build.gradle更新,我总是这样做这是许多图书馆的最新版本。

对于FFMpeg中的gradle,请使用此

compile 'com.writingminds:FFmpegAndroid:0.3.2'

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

另外,我建议您阅读this quethis que

如果您想使用最新版本的原始图书馆,请访问:FFmpeg [最新版本为here]

添加本机代码,然后这些博客可以帮助您

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

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

答案 3 :(得分:1)

我有几周的ffmpeg for android经验。

可以找到名为FFmpeg4Android的库here at WarZone

我知道这个标题是从2011年12月6日开始的,但是我已经测试并使用它,而且一切顺利。您还没有提到您使用此库的确切需求,但您可以在official site了解ffmpeg功能。

FFmpeg4Android有一个示例项目,可以作为一个很好的参考,并且他们的支持是立即和明确的。

命令根据您的字符串输入运行,例如:

ffmpeg -y -i /sdcard/videokit/in.mp4-strict experimental -s 160x120 -r 25 -vcodec mpeg4 -b 150k -ab 48000 -ac 2 -ar 22050 / sdcard / videokit / out。 MP4

如果您需要进一步的帮助,请告诉我,我很乐意提供帮助。