ffmpeg移植

1. 交叉编译yasm
    进入yasm源码目录
    make distclean   //先把之前的编译,配置文件清除

    export CC=arm-linux-gnueabihf-gcc   //可通过"./configure --help"查看到用环境变量CC指定交叉编译器
    ./configure --prefix=/usr/local/ffmpeg_arm/xlibs --host=arm    // "--prefix"用于指定安装目录, "--host"用于指定目标平台.

    make && make install //完成后, 生成在"/usr/local/ffmpeg_arm/xlibs/"目录里
2. 交叉编译libx264
   进入x264源码目录

   make distclean

   ./configure --host=arm-linux --cross-prefix=arm-linux-gnueabihf- --extra-cflags="-I /usr/local/ffmpeg_arm/xlibs/include" --extra-ldflags="-L /usr/local/ffmpeg_arm/xlibs/lib" --prefix=/usr/local/ffmpeg_arm/xlibs --enable-shared 
     // 相关的配置项可通过"./configure --help"查看

   make && make install   //完成后, 生成在"/usr/local/ffmpeg_arm/xlibs/"目录里
3. 交叉编译libx265
   参考: http://blog.csdn.net/wanglx_/article/details/50786307
   进入x265源码目录里的build/linux目录后操作:

     mkdir   arm-linux  //创建子目录
     cd    arm-linux

     vim  toolchain.cmake  //创建文件,并加入下面内容:
    set(CROSS_COMPILE_ARM 1)  
    set(CMAKE_SYSTEM_NAME Linux)  
    set(CMAKE_SYSTEM_PROCESSOR Arm)  
    set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)  
    set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)  
    # 交叉编译器的路径
    SET(CMAKE_FIND_ROOT_PATH  /disk3/myAm4379/arm4.7/bin)

     vim make-Makefiles.bash //创建文件并加入下面内容:
    #!/bin/bash  
    # Run this from within a bash shell  

    cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -G "Unix Makefiles" ../../source && ccmake ../../source

    ./make-Makefiles.bash
    在弹出的界面里修改以下项:
    CMAKE_INSTALL_PREFIX             /usr/local/ffmpeg_arm/xlibs
    YASM_EXECUTABLE                  /usr/local/ffmpeg_arm/xlibs
    修改完成后,按'c'键后再按'g'键保存退出


    修改下面三个文件:
    vim encoder/CMakeFiles/encoder.dir/flags.make
    vim common/CMakeFiles/common.dir/flags.make
    vim CMakeFiles/cli.dir/flags.make   

    都是在"CXX_FLAGS"语句最后加上 -fPIC, 否则会有"can not be used when making a shared object; recompile with -fPIC"的报错

    修改完成后,执行make && make install 进行编译
    如发生错误:arm-linux-gnueabihf-g++: error: unrecognized argument in option ‘-march=i686
        则把arm-linux整个目录删除重新做一次应就可以了。

    以上操作完成后,x265的库就生成在/usr/local/ffmpeg_arm/xlibs目录里
4. 交叉编译ffmpeg
    进入ffmpeg3.0源码目录里操作:

    make distclean

    export PKG_CONFIG_PATH=/usr/local/ffmpeg_arm/xlibs/lib/pkgconfig/

    ./configure --disable-debug --enable-libx264 --enable-libx265 --enable-gpl --enable-shared --enable-cross-compile --arch=armv7a --cross-prefix=arm-linux-gnueabihf- --prefix=/usr/local/ffmpeg_arm/xlibs --extra-cflags="-I /usr/local/ffmpeg_arm/xlibs/include -fPIC"  --extra-ldflags="-L /usr/local/ffmpeg_arm/xlibs/lib" --target-os=linux --pkg-config-flags=--static

    make && make install
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值