Android:如何在 android studio 中配置 FFMPEG 最新版本?
Posted
技术标签:
【中文标题】Android:如何在 android studio 中配置 FFMPEG 最新版本?【英文标题】:Android: How to configure FFMPEG latest version in android studio? 【发布时间】:2016-07-16 14:45:11 【问题描述】:我想在 android studio 中配置 FFMPEG
,但我无法获得任何文档或链接。 Github 上有许多可用于 android 的 FFMPEG
lib,但都是旧版本。以及如何在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
是什么意思??我的意思是最新版本和你上面提供的链接有什么区别。我曾与FFMPEG
android 合作并成功创建了许多视频..!!
@jankigadhiya 我想在 FFMPEG 中使用反向命令,但不能在上面提供的链接的所有库中使用
@jankigadhiya 我需要使用反向命令或易于反转视频?
但可用反向命令的最新版本
我已经为 NDK r12b 执行了它,看看我的答案更新它是 android studio 的完整设置..!!
【参考方案1】:
FFMPEG
的最新版本是3.1.1,12天前刚刚发布。所以我认为没有readily available demo like this old 一个。
我们需要自己构建FFMPEG
库。我发现只是粘贴在这里的一些问题可能会对您有所帮助。 (未测试)
如何为 Android 构建 FFmpeg
-
Compiling FFmpeg 2.3 with Android NDK r10
How to compile ffmpeg-2.5.3 on windows with android-ndk-r10d
How to compile ffmpeg-2.2.2 on windows with cygwin and android ndk r9c
How to buid ffmpeg with android-ndk-r10d in windows
你需要自己编译通过下载Android NDK & Latest Version of FFMPEG
。
还有一个教程:How to Build FFmpeg for Android。这已经很老了,所以你只需要更改这里提到的版本。对于FFMPEG
,它将是3.1.1
和NDK,它将是r12b
。
使用 NDK r12b 构建 FFMPEG
:
下载Android NDK:可以在Android NDK website下载最新版本的Android NDK。在撰写此答案时,最新版本是 NDK r12。只需解压缩存档
下载ffmpeg源代码:FFMPEG源代码可以从ffmpeg website下载。最新的稳定版本是 3.1.1(在撰写本文时)。下载源代码并解压到$NDK/sources文件夹。
更新配置文件:使用文本编辑器打开 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)
构建 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
构建输出:构建可能需要一段时间才能完成,具体取决于您的计算机速度。完成后,您应该能够找到一个文件夹 $NDK/sources/ffmpeg-3.1.1/android,其中包含 arm/lib 和 arm/include 文件夹。
为您的项目提供 ffmpeg 库上面的步骤已经过全面测试,我在我的机器上执行了这些步骤 构建成功。为了写这个答案,我采取了 本文参考How to Build ffmpeg with NDK r9 但就像旧版本一样,我对我的 拥有。
欢迎提出任何疑问。
【讨论】:
@JaydeepPatel 看到这个:superuser.com/questions/163049/… 让我们continue this discussion in chat。 您好,我正在使用 ubundu,在执行此行 ./build_android.sh 后,它显示 /configure: 3244: ./configure: Syntax error: redirection unexpected ./build_android.sh: line 8: -- prefix=/home/techniche/Android/ndk/android-ndk-r12b/sources/ffmpeg-3.1.3/android/arm:没有这样的文件或目录 我能够成功地为 ffmpeg 3.1.4 使用你的脚本,但是完成后没有 android 文件夹(步骤 5)输出,而是有.o
、.d
、make 文件等文件夹。如何获取.so
?
嗨 @jankigadhiya .. 我在执行 build_android.sh 时发现问题错误:./build_android.sh:第 8 行:--prefix=/home/controller/Android/Sdk/ndk-bundle/ffmpeg -3.2.2/android/arm: 没有那个文件或目录【参考方案2】:
我已经使用 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
如果您需要进一步的帮助,请告诉我,我很乐意提供帮助。
【讨论】:
【参考方案3】:你看过这个链接 Writingminds 的 FFmpeg 库在this link 中提供了关于它的所有解释
该库写作的最新版本在这里https://github.com/WritingMinds/ffmpeg-android-java/releases
如果您想使用任何库的最新版本,您可以直接在 build.gradle
中进行操作,因为如果任何库未更新,则可以看到并且可以从 build.gradle
进行更新,我总是为许多库执行此操作获取最新的可用版本。
对于 FFMpeg 中的 gradle 使用这个
compile 'com.writingminds:FFmpegAndroid:0.3.2'
更多类似的库在这个链接上给出 https://android-arsenal.com/details/1/925
另外我建议你阅读this que和this 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/
【讨论】:
我想使用最新版本的FFMPEG 我已经在我对最新版本@RaviVGHL 的回答中提到了这个我在回答中给你的链接是给它writingminds.github.io/ffmpeg-android-java,你可以直接从 build.gradle 更新最新的库版本跨度> 但是这里没有使用这个库构建的任何最新版本 我已经在官方网站的回答中提供了,您始终可以获取最新版本。 ffmpeg.org/download.html 这是过时的依赖。请更新您的答案【参考方案4】:我建议您使用以下对我有帮助的网址:
http://androidwarzone.blogspot.in/2011/12/ffmpeg4android.html
http://writingminds.github.io/ffmpeg-android-java/
https://androiddeveloperhelp.wordpress.com/2015/12/19/video-editing-android-example/
知识:
http://www.lai18.com/content/5175900.html
Android Studio 源码:
https://drive.google.com/file/d/0B9qAjo6wKhk9MEpNNjMxaG5oWXM/view?usp=sharing
也许对你有帮助。
【讨论】:
我想使用最新版本的FFMPEG 谢谢。你节省了我 2 到 3 天的时间。 @RaviVaghela : 你找到最新版本的解决方案了吗?以上是关于Android:如何在 android studio 中配置 FFMPEG 最新版本?的主要内容,如果未能解决你的问题,请参考以下文章
Android Study Jam 倒计时:最后一周 提交小测赢好礼
Android Study Jam 倒计时:最后一周 提交小测赢好礼
Android Study 玩转百度ocr身份证识别不是梦~