问题描述
我需要安装ffmpeg与libx264支持启用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
函数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
$ PR $ = $(pwd) $ b 但是当我运行脚本时,我收到错误错误:libx264未找到。
我想ffmpeg无法弄清安装libx264的位置。在libx264安装之后,我在/ usr / local / bin中的/ usr / local / lib可执行文件中的libx264.so文件和/ usr / local / include目录下的头文件。
为了使其检测到libx264,需要对ffmpeg构建脚本进行什么所有更改?
注意:我使用的是Ubuntu 12.04(64位)交叉编译。
解决方案确保您的$ ADDI_CFLAGS变量(您传递 - extra-cflags
)包括 -I / usr / local / include
I needed to install ffmpeg with libx264 support for enabling H.264 encoding . I installed libx264 successfully using the below script with toolchains available in 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
Now I wanted to build ffmpeg with libx264 support . I used the below script with --enable-libx264 , --enable-nonfree , --enable-gpl options as in the below script .
#!/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
But when I run the script I'm getting error "ERROR: libx264 not found" .
I suppose ffmpeg is not able to figure out the installed location of libx264 . After libx264 installation I have libx264.so file in /usr/local/lib executable at /usr/local/bin and header files at /usr/local/include directories .
What all changes do I need to make to the ffmpeg build script in-order to make it detect libx264?
Note : I am using Ubuntu 12.04(64 bit) for cross compiling .
解决方案 Make sure your $ADDI_CFLAGS variable (which you pass in --extra-cflags
) includes -I /usr/local/include
这篇关于如何解决“错误:libx264未找到”?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!