欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

ffmpeg libx264 not found 有大用

集成ffmpeg/x264:ERROR: libx264 not found的问题

 (2011-05-11 09:37:08)    
转载    
标签: 

杂谈

分类: 图形图像                
集成ffmpeg/x264:ERROR: libx264 not found的问题
   --拔剑
集成ffmpeg/x264碰到如下问题:
    ERROR: libx264 not found
察看config.log,详细信息如下:
      check_lib x264.h x264_encoder_encode -lx264
       check_header x264.h
       check_cpp
       BEGIN /tmp/ffconf.isuazGlg.c
          1   #include <x264.h>
          2   int x;
       END /tmp/ffconf.isuazGlg.c
       gcc -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFIL
       E_SOURCE -U__STRICT_ANSI__ -I/d/MinGW/msys/1.0/include -std=c99 -fno-common -fom
       it-frame-pointer -E -o /tmp/ffconf.ClhyDYvC.o /tmp/ffconf.isuazGlg.c
      C:/DOCUME~1/ibm/LOCALS~1/Temp/ffconf.isuazGlg.c:1:18: fatal error: x264.h: No su
       ch file or directory^M
       compilation terminated.^M
       ERROR: libx264 not found:
所以实际原因是x264 make install 的东西ffmpeg configure没有找到x264.h这个文件。查看我的x264
make install的结果,有:
      install -d /usr/local/bin
      install -d /usr/local/include
      install -d /usr/local/lib
      install -d /usr/local/lib/pkgconfig
      install -m 644 x264.h /usr/local/include
      install -m 644 x264_config.h /usr/local/include
      install -m 644 libx264.a /usr/local/lib
      install -m 644 x264.pc /usr/local/lib/pkgconfig
      install x264.exe /usr/local/bin
      ranlib /usr/local/lib/libx264.a
      install -m 755 libx264-115.dll /usr/local/bin
      install -m 644 libx264.dll.a /usr/local/lib
因此,只要在配制configure时,添加额外的include/link路径应该能够解决问题,即增加开关:
      --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
这个需要根据你x264编译、安装的实际配制修改。Finally, the configure command for ffmpeg is
changed to :
$./configure --enable-memalign-hack --enable-ffserver --enable-network --enable-protocols --enable-muxers --disable-yasm --enable-shared --enable-w32threads --enable-libx264 --enable-gpl --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib        
    

运行,一切无误!

来自 http://blog.sina.com.cn/s/blog_54b5ea250100r53o.html    


   

ffmpeg + x264 编译提示libx264 not found 的解决方法

编译ffmpeg和x264吃了不少苦,很重要的一点就是如果你对这个编译不是很熟的话千万不要尝试用cygdrive+windows编译。建议在Ubuntu下编译!  

1.首先要确保已经编译了x264的源码

这边是我x264的sh   

  1. export NDK=/home/mtb0157/workspace/android-ndk-r9
  2. export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
  3. export CC=$PREBUILT/bin/arm-linux-androideabi-gcc
  4. export LD=$PREBUILT/bin/arm-linux-androideabi-ld
  5. export AS=$PREBUILT/bin/arm-linux-androideabi-gcc
  6. export AR=$PREBUILT/bin/arm-linux-androideabi-ar
  7. export RANLIB=$PREBUILT/bin/arm-linux-androideabi-ranlib
  8. export STRIP=$PREBUILT/bin/arm-linux-androideabi-strip
  9. export PLATFORM=$NDK/platforms/android-8/arch-arm
  10. export PREFIX=/home/mtb0157/Project/lib
  11. export STRIP=$PREBUILT/bin/arm-linux-androideabi-strip
  12. ./configure --prefix=$PREFIX \
  13. --enable-static \
  14. --enable-pic \
  15. --enable-strip \
  16. --disable-cli \
  17. --extra-cflags= "-march=armv7-a  -mfloat-abi=softfp -mfpu=neon" \ #这个没啥用
  18. --host=arm-linux \
  19. --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
  20. --sysroot=$PLATFORM
2.之所以编译的时候提示找不到x264,有两种可能.一是没有把静态库包含进来, 二是包含进来了但是没有权限! 之前我尝试用 -I/usr/local/lib 这个目录作为附加库,结果失败了

       

于是我用上面的.sh定义我的

PREFIX=/home/mtb0157/Project/lib
x264编译完后 make install 就可以把库导到上面的目录了

       

3.在ffmpeg的sh里面加入额外的库和头文件

下面是我的sh                

  1. #!/bin/bash
  2. NDK=/home/mtb0157/workspace/android-ndk-r9
  3. SYSROOT=$NDK/platforms/android-9/arch-arm/
  4. TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
  5. export PLATFORM=$NDK/platforms/android-8/arch-arm
  6. export PREFIX=/home/mtb0157/Project/lib
  7. function build_one
  8. {
  9. ./configure --prefix=$PREFIX\
  10. --disable-doc \
  11. --enable-gpl \
  12. --enable-libx264 \
  13. --disable-symver \
  14. --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
  15. --target-os=linux \
  16. --arch=arm \
  17. --enable-cross-compile \
  18. --sysroot=$PLATFORM \
  19. --extra-cflags=-I/home/mtb0157/Project/lib/include \
  20. --extra-ldflags=-L/home/mtb0157/Project/lib/lib
  21. }
  22. CPU=arm
  23. PREFIX=$(pwd)/android/$CPU
  24. ADDI_CFLAGS="-marm"
  25. build_one
      

这边指定了之前我导出的x264的库
    --extra-cflags=-I/home/mtb0157/Project/lib/include \

  1. --extra-ldflags=-L/home/mtb0157/Project/lib/lib
       

来自 https://blog.csdn.net/zsc09_leaf/article/details/14452267        


       

ERROR: libx264 not found

    

嗯?吾明明编译了啊。怎么回事?有两种可能:

  • 在编译264的时候,configure没有加参数。正确写法:

  1. ./configure \
  2. --prefix=${DEST_LIB_DIR} \
  3. --enable-shared
  • 在编译ffmpeg的时候,需要指明libx264.so所在目录。

具体是这样指定的(注意:--extra-ldflags只能有一个)

  1. BUILD_LIBS=${HOME}/build_libs
  2. ./configure \
  3. --prefix="${BUILD_LIBS}" \
  4. --extra-cflags="-I${BUILD_LIBS}/include" \
  5. --extra-ldflags="-L${BUILD_LIBS}/lib" \
  6. --bindir="${BUILD_LIBS}/bin"

这里只列出相关参数。

来自   https://blog.csdn.net/quantum7/article/details/104048715

普通分类: