Ubuntu下编译FFMPEG笔记

第一次编译ffmpeg花了好久时间查资料和研究,记录下笔记以免忘记。

Ubuntu下原生编译ffmpeg

  1. 下载ffmpeg源码,地址:http://www.ffmpeg.org/download.html
  2. 解压源码,以我的目录为例:xz -d ffmpeg-20170921-183fd30.tar.xz         tar -xvf ffmpeg-20170921-183fd30.tar
  3. 安装yasm支持: sudo apt-get install yasm 。 (也可以跳过,如果不安装yasm,编译的时候需要加上 -disable yasm 参数)
  4. 进入ffmpeg源码路径,修改configure编译设置项:

    将下面四行:

            SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'

            LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'

            SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'

            SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
    替换为:
            SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'

            LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'

            SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'

            SLIB_INSTALL_LINKS='$(SLIBNAME)'

  5. 执行configure文件。./configure --prefix=/usr/local --enable-shared --disable-static --disable-x86asm  过滤项比较少,如果有需要可自己加过滤项,精简一些不需要的模块
  6. make 
  7. sudo make install
  8. 输入ffmpeg命令,验证是否安装成功。成功的结果如图:
  9. 检查库依赖是否正确:ldd ffmpeg  
如果有报错找不到库文件,修改 /etc/ld.so.conf,在最后一行添加/usr/local/lib(这个目录要和--prefix=/usr/local参数项保持一致),
sudo ldconfig
以上是基本的ffmpeg编译,如果有需要,可以自行添加其他依赖,如libx264,libx265,libfdk-aac ,nasm等

Ubuntu下编译Android用到的ffmpeg库

先配置NDK环境。

  1. 下载NDK,地址:https://developer.android.google.cn/ndk/downloads/index.html
  2. 解压:/home/donwz/dev/ndk/ 
  3. 配置环境变量:sudo gedit ~/.bashrc,在末尾加入:
    export NDK=/home/donwz/dev/ndk/android-ndk-r14b
    export PATH=${PATH}:$NDK
  4. 使环境变量生效:source ~/.bashrc
  5. 输入命令ndk-build,如果提示如图则代表配置成功。

接下来 编译ffmpeg。

使用NDK编译ffmpeg,前面四个步骤和原生编译步骤是一样的。

  1. 在源码目录下新建build_android.sh脚本,编写脚本:
    #!/bin/bash
    NDK=/home/donwz/dev/ndk/android-ndk-r14b
    export TMPDIR="/home/donwz/app/ffmpeg/build"
    function build_one
    {
    ./configure \
        --prefix=$PREFIX \
        --enable-shared \
        --disable-static \
        --disable-doc \
        --disable-ffmpeg \
        --disable-ffplay \
        --disable-ffprobe \
        --disable-ffserver \
        --disable-avdevice \
        --disable-doc \
        --disable-symver \
    	--disable-x86asm \
        --cross-prefix=$CROSS_PREFIX \
        --target-os=linux \
        --arch=$CPU \
        --enable-cross-compile \
        --sysroot=$SYSROOT \
        --extra-cflags="-fpic" \
    	--extra-libs=-lgcc \
        $ADDITIONAL_CONFIGURE_FLAG
    make clean
    make
    make install
    }
    #--extra-ldflags="$ADDI_LDFLAGS" \
    #x86
    CPU=x86
    PREFIX=$(pwd)/android/$CPU
    TOOLCHAIN=$NDK/toolchains/x86-4.9/prebuilt/linux-x86_64
    CROSS_PREFIX=$TOOLCHAIN/bin/i686-linux-android-
    SYSROOT=$NDK/platforms/android-24/arch-$CPU
    ADDI_CFLAGS="-marm"
    build_one
    
    #x86_64
    CPU=x86_64
    PREFIX=$(pwd)/android/$CPU
    TOOLCHAIN=$NDK/toolchains/x86_64-4.9/prebuilt/linux-x86_64
    CROSS_PREFIX=$TOOLCHAIN/bin/x86_64-linux-android-
    SYSROOT=$NDK/platforms/android-24/arch-$CPU
    ADDI_CFLAGS="-marm"
    build_one
    
    
    #arm
    CPU=arm
    PREFIX=$(pwd)/android/$CPU
    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
    CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
    SYSROOT=$NDK/platforms/android-24/arch-$CPU
    ADDI_CFLAGS="-marm"
    build_one
  2. 保证有777权限:chmod 777 build_android.sh,然后执行build_android.sh:    ./build_android.sh 
  3. make
  4. sudo make install

安装其他依赖库


SDL2


1.下载SDL2源码,地址:http://www.libsdl.org/download-2.0.php

2.解压,执行configure,看最后输出结果,检查其他依赖项有没有缺失

其中 libsamplerate 、libudev和dbus是必需的。如果为NO,单独下载并安装这些库。

sudo apt-get install libsamplerate0-dev  //libsamplerate

sudo apt-get install libudev-dev  //libudev

sudo apt-get install dbus //dbus

sudo apt-get install d-feet //dbus

sudo apt-get install libgtk2.0-dev //dbus

sudo apt-get install libdbus-glib-1-dev //dbus

3.make

4.sudo make install

也可以直接 sudo apt-get install libsdl2-dev 安装

SDL1.2


1.下载SDL1.2源码,地址:http://www.libsdl.org/download-1.2.php

2. 先安装x11支持:sudo apt-get install libX11-dev libXext-dev libXtst-dev libXrender-dev libxmu-dev libxmuu-dev

3. 解压SDL1.2源码,进入源码目录,执行configure:./configure

4. make 

5. sudo make install

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值