Android:如何在android studio中configurationFFMPEG最新版本?
我想在Android工作室中configurationFFMPEG
,但我不能得到任何文件或链接。 Github上的许多FFMPEG
lib可用于Android,但都是旧版本。 以及如何在android中运行命令? 我想configurationFFMPEG
后知道如何运行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天前发布。 所以我觉得这个老版本没有现成的演示 。
我们需要自己构buildFFMPEG
库。 我在这里发现的一些问题可能会帮助你。 (未testing)
如何为Android构buildFFmpeg
- 用Android NDK r10编译FFmpeg 2.3
- 如何使用android-ndk-r10d在windows上编译ffmpeg-2.5.3
- 如何用cygwin和android ndk r9c在windows上编译ffmpeg-2.2.2
- 如何在Windows中使用android-ndk-r10d构buildffmpeg
您需要通过下载Android NDK & FFMPEG
最新版本自行编译。
一个教程也在那里: 如何为Android构buildFFmpeg 。 这是相当古老的,所以你只需要改变这里提到的版本。 对于FFMPEG
它将是3.1.1
&NDK它将是r12b
。
用NDK r12b构buildFFMPEG
:
-
下载Android NDK :最新版本的Android NDK可以在Android NDK网站上下载。 在写这个答案的时候,最新的版本是NDK r12。 简单地解压档案
-
下载ffmpeg源代码 :FFMPEG源代码可以从ffmpeg网站下载。 最新的稳定版本是3.1.1(在撰写本文时)。 下载源代码并将其解压缩到$ NDK / sources文件夹。
-
更新configuration文件:使用文本编辑器打开ffmpeg-3.1.1 / configure文件,并find以下几行。
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构build系统不兼容。 因此,我们需要用以下几行代替上面的行。
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS='$(SLIBNAME)
-
构buildffmpeg:将以下文本复制到文本编辑器中,并将其作为build_android.sh保存在ffmpeg_3.1.1文件夹中。
#!/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
-
构build输出:构build可能需要一段时间才能完成,具体取决于您的计算机速度。 一旦完成,你应该能够find一个文件夹$ NDK / sources / ffmpeg-3.1.1 / android,其中包含arm / lib和arm / include文件夹。
- 使ffmpeg库可用于您的项目
上面的步骤经过充分testing,我在我的机器上执行它们,并且构build成功。 为了写这个答案,我已经从这篇文章的参考如何使用NDK R9构buildffmpeg,但因为它是旧版本,我已经做了一些我自己的更正。
打开询问任何疑虑。
我build议你以下这些对我有帮助的url:
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
这可能对你有所帮助。
你有没有看到这个链接Writingminds的FFmpeg库在这个链接提供了所有关于它的解释
该库的最新版本writingmind在这里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上给出;
另外,我build议你读这个阙 , 这个阙
如果你想使用最新版本的原始图书馆去这里: FFmpeg [最新版本将在这里 ]
添加本地代码,然后这些博客可以帮助你
和http://ffmpeg-android.blogspot.in/
http://www.roman10.net/2011/07/17/how-to-build-android-applications-based-on-ffmpeg-by-an-example/
我经历了几个星期的android ffmpeg。
这个库名为FFmpeg4Android,可以在WarZonefind。
我知道标题说,从2011年12月6日,但我已经testing,并与它合作,这一切运行顺利。 你没有提到你对这个库的确切需求,但是你可以在官方网站上了解到ffmpeg的function。
FFmpeg4Android有一个可以作为参考的示例项目,他们的支持也是直接和明确的。
命令根据您的stringinput运行,例如:
ffmpeg -y -i /sdcard/videokit/in.mp4-严格实验-s 160×120 -r 25 -vcodec mpeg4 -b 150k -ab 48000 -ac 2 -ar 22050 /sdcard/videokit/out.mp4
让我知道如果你需要进一步的帮助,我会很乐意帮助。