我要配置FFMPEG
在 android studio 中,但我无法获得任何文档或链接。 Github上有很多FFMPEG
lib 可用于 android,但都是旧版本。以及如何在android中运行命令?我想知道配置后FFMPEG
那我们怎么跑FFMPEG
命令。帮我解决这个问题。提前致谢。
我已使用以下链接,但最新版本未成功。
http://writingminds.github.io/ffmpeg-android-java http://writingminds.github.io/ffmpeg-android-java
https://github.com/WritingMinds/ffmpeg-android-java https://github.com/WritingMinds/ffmpeg-android-java
https://github.com/havlenapetr/FFMpeg https://github.com/havlenapetr/FFMpeg
https://github.com/appunite/AndroidFFmpeg https://github.com/appunite/AndroidFFmpeg
https://github.com/WritingMinds/ffmpeg-android https://github.com/WritingMinds/ffmpeg-android
最新版本FFMPEG
是3.1.1,12天前刚刚发布。所以我认为没有像这样旧的现成演示 https://github.com/WritingMinds/ffmpeg-android-java one.
我们需要建立FFMPEG
我们自己的图书馆。我发现粘贴在这里的一些问题可能会对您有所帮助。 (未测试)
如何为 Android 构建 FFmpeg
- 使用 Android NDK r10 编译 FFmpeg 2.3 https://stackoverflow.com/questions/24853599/compiling-ffmpeg-2-3-with-android-ndk-r10
- 如何使用 android-ndk-r10d 在 Windows 上编译 ffmpeg-2.5.3 https://stackoverflow.com/questions/27901708/how-to-compile-ffmpeg-2-5-3-on-windows-with-android-ndk-r10d
- 如何使用 cygwin 和 android ndk r9c 在 Windows 上编译 ffmpeg-2.2.2 https://stackoverflow.com/questions/23683518/how-to-compile-ffmpeg-2-2-2-on-windows-with-cygwin-and-android-ndk-r9c
- 如何在 Windows 中使用 android-ndk-r10d 构建 ffmpeg https://stackoverflow.com/questions/29874153/how-to-buid-ffmpeg-with-android-ndk-r10d-in-windows
您需要通过下载自行编译安卓NDK https://developer.android.com/ndk/downloads/index.html & 最新版本FFMPEG https://ffmpeg.org/.
还有一个教程:如何为 Android 构建 FFmpeg http://www.roman10.net/2011/07/17/how-to-build-ffmpeg-for-android/。这是相当旧的,所以你只需要更改这里提到的版本。为了FFMPEG
这将是3.1.1
&NDK 将会是r12b
.
建筑FFMPEG
使用 NDK r12b:
下载安卓NDK:最新版本的Android NDK可以在以下位置下载:Android NDK 网站 https://developer.android.com/ndk/downloads/index.html。在撰写此答案时,最新版本是 NDK r12。只需解压存档即可
下载ffmpeg源代码:FFMPEG源代码可以从以下网站下载ffmpeg 网站 http://www.ffmpeg.org/download.html。最新的稳定版本是 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 库可用于您的项目
上述步骤经过充分测试,我在我的机器上执行了它们并且
构建成功。为了写这个答案,我采取了
参考这篇文章如何使用 NDK 构建 ffmpeg
r9 http://www.roman10.net/2013/08/18/how-to-build-ffmpeg-with-ndk-r9/但由于是旧版本,我对我的内容做了一些更正
自己的。
欢迎提出任何疑问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)