我必须开发一个应用程序,它可以裁剪视频。
我决定使用ffmpeg,我测试了下面的库:
https://github.com/WritingMinds/ffmpeg-android-java
但是我在控制台得到[libx264 @ 0xf506d400] using cpu capabilities: none!
并且运行速度如此之慢。
所以我决定构建我自己的ffmpeg预构建并尝试我的硬和测试下面的链接为make prebuild ffmpeg:
但是,构建有自己的错误,例如"无法找到c comiler"
经过太多的搜索,我发现并构建了ffmpeg,但结果是一些.so文件(如下所列):
我的build.sh是:
NDK=/Users/mehdi/Documents/adt-bundle-mac-x86_64-20140702/ndk/android-ndk-r13b
SYSROOT=$NDK/platforms/android-24/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--enable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--cpu=cortex-a8 \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
--enable-runtime-cpudetect \
--enable-gpl \
--enable-avfilter \
--enable-encoders \
--enable-muxers \
--enable-protocols \
--enable-parsers \
--enable-demuxers \
--enable-decoders \
--enable-bsfs \
--enable-network \
--enable-swscale \
--enable-asm
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
我把.so文件放到android studio的cpp文件夹中,然后制作CMakeLists.txt。
到目前为止,每件事情都可以,但我在哪里可以找到ffmpeg文件在java中执行命令。