Android:如何在android studio 中配置FFMPEG 最新版本? [英] Android: How to configure FFMPEG latest version in android studio?

查看:32
本文介绍了Android:如何在android studio 中配置FFMPEG 最新版本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 android studio 中配置 FFMPEG 但我无法获得任何文档或链接.Github 上有许多 FFMPEG 库可用于 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

解决方案

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

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

如何为 Android 构建 FFmpeg

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

您需要自己编译它,方法是下载 Android NDK &FFMPEG 的最新版本.

还有一个教程:如何为 Android 构建 FFmpeg.这是很旧的所以你只需要改变这里提到的版本.对于 FFMPEG,它将是 3.1.1 &NDK 它将是 r12b.

<小时>

使用 NDK r12b 构建 FFMPEG:

  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)'

    这会导致 ffmpeg 共享库被编译为libavcodec.so.(例如 libavcodec.so.55),这不是兼容安卓构建系统.因此我们需要更换上面几行下面几行.

    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 : 将以下文本复制到文本编辑器中,并将其另存为 build_android.sh 在 ffmpeg_3.1.1 文件夹中.

     #!/bin/bashNDK=$HOME/桌面/adt/android-ndk-r9SYSROOT=$NDK/platforms/android-9/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64函数 build_one{./配置--prefix=$PREFIX--启用共享--禁用静态--disable-doc--禁用-ffmpeg--disable-ffplay--disable-ffprobe--disable-ffserver--disable-avdevice--disable-doc--disable-symver--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi---target-os=linux--arch=手臂--启用交叉编译--sysroot=$SYSROOT--extra-cflags="-Os -fpic $ADDI_CFLAGS"--extra-ldflags="$ADDI_LDFLAGS"$ADDITIONAL_CONFIGURE_FLAG清洁制作进行安装}CPU=手臂PREFIX=$(pwd)/android/$CPUADDI_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 库可用于您的项目

<块引用>

上面的步骤已经过全面测试,我在我的机器上执行了它们构建成功.为了写这个答案,我采取了参考这篇文章 如何构建 ffmpeg使用 NDKr9但是对于旧版本,我对我的内容进行了一些更正自己的.

欢迎提出任何疑问.

I want to configure FFMPEG in android studio but i cant get any document or link for that. Github on many FFMPEG lib available for android but that all are with old version. And how to run command in android? and i want to know after configure FFMPEG then how can we run FFMPEG commands. Help me for that. thanks advance.

I have used below links but not success in for latest version.

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

解决方案

The latest version of FFMPEG is 3.1.1, Just released before 12 days. So i think there is no readily available demo like this old one.

We need to build the FFMPEG library on our own. Some questions i found just pasting here that might help you. (Not tested)

How to Build FFmpeg for Android

  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

You need to compile it on your own the by downloading Android NDK & Latest Version of FFMPEG.

One tutorial is also there : How to Build FFmpeg for Android. This is quite old so you just need to change the versions mentioned here. For FFMPEG it will be 3.1.1 & NDK it will be r12b.


Building FFMPEG with NDK r12b:

  1. Download Android NDK : The latest version of Android NDK can be downloaded at Android NDK website. At the time of writing this answer, the newest version is NDK r12. simply decompress the archive

  2. Download ffmpeg source code : FFMPEG source code can be downloaded from the ffmpeg website. The latest stable release is 3.1.1 (at the time of writing). Download the source code and decompress it to $NDK/sources folder.

  3. Update configure file : Open ffmpeg-3.1.1/configure file with a text editor, and locate the following lines.

    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)'
    

    This cause ffmpeg shared libraries to be compiled to libavcodec.so. (e.g. libavcodec.so.55), which is not compatible with Android build system. Therefore we’ll need to replace the above lines with the following lines.

    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 : Copy the following text to a text editor and save it as build_android.sh in ffmpeg_3.1.1 folder.

        #!/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
    

    Once the file is saved, go to the directory where this file lies & execute the command below,

    sudo chmod +x build_android.sh
    

    Then execute the script by the command,

    ./build_android.sh
    

  5. Build Output : The build can take a while to finish depending on your computer speed. Once it’s done, you should be able to find a folder $NDK/sources/ffmpeg-3.1.1/android, which contains arm/lib and arm/include folders.

  6. Make ffmpeg Libraries available for Your Projects

Steps above are fully tested and i performed them on my machine and the build was successful. For writing this answer i have took the reference from this article How to Build ffmpeg with NDK r9 but as it was for older version i have made some corrections on my own.

Open for asking any doubts.

这篇关于Android:如何在android studio 中配置FFMPEG 最新版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆