我想在 android studio 中配置 FFMPEG
但我无法获得任何文档或链接。 Github 上有许多可用于 android 的 FFMPEG
库,但都是旧版本。以及如何在android中运行命令?我想知道配置 FFMPEG
之后我们如何运行 FFMPEG
命令。帮助我。提前谢谢。
我使用了以下链接,但在最新版本中没有成功。
http://writingminds.github.io/ffmpeg-android-java
https://github.com/WritingMinds/ffmpeg-android-java
https://github.com/havlenapetr/FFMpeg
最佳答案
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 可在 Android NDK website 下载.在撰写此答案时,最新版本是 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 库可用于您的项目
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.
欢迎提出任何疑问。
关于java - Android:如何在 android studio 中配置 FFMPEG 最新版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36277628/