如何解决“ERROR:libx264 not found”?

时间:2014-08-01 11:21:11

标签: android android-ndk ffmpeg libx264

我需要安装支持libx264的ffmpeg才能启用H.264编码。我使用以下脚本成功安装了libx264,并在android-ndk-r9d中提供了工具链。

 #!/bin/bash
 NDK=~/android-ndk-r9d
 SYSROOT=$NDK/platforms/android-8/arch-arm/
 TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
 function build_one
 {
 ./configure \
 --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
 --sysroot="$SYSROOT" \
 --host=arm-linux \
 --enable-pic \
 --enable-shared \
 --disable-cli
 make clean
 make
 make install
 }
 build_one 

现在我想用libx264支持构建ffmpeg。我在下面的脚本中使用了以下脚本--enable-libx264, - enable-nonfree, - enable-gpl选项。

#!/bin/bash
NDK=~/android-ndk-r9d
SYSROOT=$NDK/platforms/android-8/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--enable-nonfree \
--enable-gpl \
--enable-libx264 \
--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

但是当我运行脚本时,我收到错误“ERROR:找不到libx264”。

我认为ffmpeg无法弄清楚libx264的安装位置。安装libx264后,我在/ usr / local / bin中的/ usr / local / lib可执行文件中有libx264.so文件,在/ usr / local / include目录下有头文件。

我需要对ffmpeg构建脚本进行哪些更改才能使其检测到libx264?

注意:我使用Ubuntu 12.04(64位)进行交叉编译。

4 个答案:

答案 0 :(得分:7)

确保您的$ ADDI_CFLAGS变量(您在--extra-cflags中传递)包含-I /usr/local/include

答案 1 :(得分:4)

在较新版本的libx264上,您必须使用--disable-opencl配置ffmpeg以正确查找库。

./configure --enable-static --disable-opencl

wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
cd x264-snapshot*
./configure --enable-static --disable-opencl
make install

答案 2 :(得分:2)

你也需要交叉编译libx264 for Android,不要使用linux发行版中的那个。

交叉编译后,在-I/path/to/x264 var。

中添加$ADDI_CFLAGS,将路径添加到libx264.a中。

要完成所有这些操作,您可以直接尝试此构建脚本:https://github.com/ph0b/FFmpeg-Android

答案 3 :(得分:1)

我试过这个,它对我有用。

cd /opt

git clone git://git.videolan.org/x264.git

cd x264

./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static 

make

make install