首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译FFmpeg :找不到libx264

编译FFmpeg :找不到libx264
EN

Stack Overflow用户
提问于 2016-03-12 16:39:39
回答 2查看 2.8K关注 0票数 1

我希望有人能帮我解决这个问题。我试图使用android在ubuntu12.04LTS下编译FFmpeg 2.2.3库,方法是遵循以下教程:

Tutorial1

Tutorial2

这是我的build_android.sh文件:

代码语言:javascript
复制
#!/bin/bash
NDK=/home/rango/Desktop/android-ndk-r10e
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86

#ADDI_LDFLAGS="-L /usr/local/lib"
#ADDI_CFLAGS="-I /usr/include"

function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--enable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--enable-protocol=concat \
--enable-protocol=file \
--enable-muxer=mp4 \
--enable-demuxer=mpegts \
--enable-memalign-hack \
--enable-gpl \
--enable-libx264 \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic -marm $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \

make clean
make -j4
make install
}

CPU=arm
PREFIX=$(pwd)/android/$CPU

build_one

当我在没有--启用-libx264\ line的情况下执行buid_android.sh脚本时,一切都进行得很好,我可以在android/arm/文件夹上获得.a文件。但是对于这一行,它会失败,并在控制台中显示以下错误:

错误:找不到libx264 如果您认为配置出错,请确保您使用的是Git的最新版本。如果最新版本失败,请将问题报告给irc.freenode.net上的ffmpeg-user@ffmpeg.org邮件列表或IRC #ffmpeg。包括配置生成的日志文件"config.log“,因为这将有助于

它似乎找不到库在哪里,因为我在config.log文件中得到了许多错误:

"LIBNAME".h:没有这样的文件或目录newlib.h:没有这样的文件或目录mingw.h:没有这样的文件或目录x264.h:没有此类文件或目录

下面是config.log文件的尾部:

代码语言:javascript
复制
check_mathfunc truncf 1
check_ld cc
check_cc
BEGIN /tmp/ffconf.zGKqGin6.c
    1   #include <math.h>
    2   float foo(float f, float g) { return truncf(f); }
    3   int main(void){ return (int) foo; }
END /tmp/ffconf.zGKqGin6.c
/home/rango/Desktop/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/rango/Desktop/android-ndk-r10e/platforms/android-19/arch-arm/ -isysroot /home/rango/Desktop/android-ndk-r10e/platforms/android-19/arch-arm/ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -Os -fpic -marm -march=armv5te -std=c99 -fomit-frame-pointer -fPIC -marm -pthread -c -o /tmp/ffconf.8Q9ke3aO.o /tmp/ffconf.zGKqGin6.c
/home/rango/Desktop/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/rango/Desktop/android-ndk-r10e/platforms/android-19/arch-arm/ -isysroot /home/rango/Desktop/android-ndk-r10e/platforms/android-19/arch-arm/ -Wl,--as-needed -o /tmp/ffconf.3sjTkc5z /tmp/ffconf.8Q9ke3aO.o -lm -lz -pthread
check_lib x264.h x264_encoder_encode -lx264
check_header x264.h
check_cpp
BEGIN /tmp/ffconf.zGKqGin6.c
    1   #include <x264.h>
    2   int x;
END /tmp/ffconf.zGKqGin6.c
/home/rango/Desktop/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/rango/Desktop/android-ndk-r10e/platforms/android-19/arch-arm/ -isysroot /home/rango/Desktop/android-ndk-r10e/platforms/android-19/arch-arm/ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -Os -fpic -marm -march=armv5te -std=c99 -fomit-frame-pointer -fPIC -marm -pthread -E -o /tmp/ffconf.8Q9ke3aO.o /tmp/ffconf.zGKqGin6.c
/tmp/ffconf.zGKqGin6.c:1:18: fatal error: x264.h: No such file or directory
 #include <x264.h>
                  ^
compilation terminated.
ERROR: libx264 not found
EN

回答 2

Stack Overflow用户

发布于 2016-03-12 20:04:20

从理论上讲,要用FFmpeg支持libx264为Android构建libx264,您需要完成以下步骤:

1)为安卓系统构建libx264。现在您还没有构建任何libx264,这就是为什么要克服错误。

2)更改buid_android.sh并添加要配置的附加选项(--extra-cflags--extra-ldflags),以指定构建在步骤1上的libx264的includelib目录的路径。

3)运行修改后的build_android.sh。

不幸的是,我还没有为libx264构建Android。但我想是有办法的。

票数 1
EN

Stack Overflow用户

发布于 2016-03-17 01:28:29

好的,以下是我为正确编译所做的工作。正如Edgar所提到的,我应该使用NDK编译器为android编译libx264库。我用这个脚本来完成它。

代码语言:javascript
复制
#!/bin/bash

NDK=(path to android ndk)/android-ndk-r10e
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86



./configure --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--sysroot=$SYSROOT \
--enable-static \
--enable-pic \
--enable-static \
--disable-cli \
--disable-asm \
--extra-cflags="-fPIE -pie" \
--extra-ldflags="-fPIE -pie" \
--host=arm-linux

make
sudo make install
sudo ldconfig
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35960371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档