我想在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
答案 0 :(得分:36)
FFMPEG
的最新版本是3.1.1,刚刚在12天之前发布。所以我认为没有readily available demo like this old一个。
我们需要自己构建FFMPEG
库。我发现的一些问题只是粘贴在这里可能对你有帮助。 (未经测试)
如何为Android构建FFmpeg
您需要自行编译,方法是下载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 website下载FFMPEG源代码。最新的稳定版本是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文件夹。
上面的步骤已经过全面测试,我在我的机器上进行了测试 构建成功。为了写这个答案我已经拿了 本文的参考文献How to Build ffmpeg with NDK r9 但是对于旧版本我已经对我做了一些更正 自己的。
公开表示怀疑。
答案 1 :(得分:13)
我建议您使用以下有助于我的网址:
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工作室源代码:
https://drive.google.com/file/d/0B9qAjo6wKhk9MEpNNjMxaG5oWXM/view?usp=sharing
它可能对你有帮助。
答案 2 :(得分:5)
您是否看到此链接 Writingminds 的FFmpeg库在this link
中提供了有关它的所有说明如果您想使用任何库的最新版本,可以直接在build.gradle
中执行,因为如果没有更新任何库,可以看到它并且可以从build.gradle
更新,我总是这样做这是许多图书馆的最新版本。
对于FFMpeg中的gradle,请使用此
compile 'com.writingminds:FFmpegAndroid:0.3.2'
此链接提供了与此类似的更多库 https://android-arsenal.com/details/1/925
添加本机代码,然后这些博客可以帮助您
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 强>
如果您需要进一步的帮助,请告诉我,我很乐意提供帮助。