1 准备工作

(1)libmp3lame库

下载:    wget http://downloads.sourceforge.net/lame/lame-3.99.tar.gz

解压

编译:./configure --prefix=/usr/local/arm --host=arm-none-linux-gnueabi

make

make install

编译ok。

(2)libxvid库(x264库)

支持xvid x264,现在最流行的两种高质量的压缩格式,下载地址是:

http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz

解压后参考其readme文件,打开xvidcore/doc/INSTALL文件
基本上还是通常的三步曲,只不过configure文件换了个目录,在build\generic路径下
我们也看到库支持vs2008编译

./configure --prefix=/usr/local/arm --host=arm-none-linux-gnueabi

make

sudo make install

(3)FAAC库的编译安装(貌似不需要)
从网上下载的源码是faad2-2.0.tar,在Ubuntu上解压后,由于是DOS格式的,执行下面语句会出错
./bootstrap

我的执行步骤是
chmod +x bootstrap

dos2unix bootstrap

./bootstrap

报错:

# ./bootstrap

configure.in:38: warning: underquoted definition of MY_CHECK_TYPEDEF_FROM_INCLUDE
configure.in:38:   run info '(automake)Extending aclocal'
configure.in:38:   or see http://www.gnu.org/software/automake/manual/automake.html#Extending-aclocal
./bootstrap: 5: ./bootstrap: libtoolize: not found

# apt-get install -y libtoolize

======================

./configure --prefix=/usr/local/arm --host=arm-none-linux-gnueabi

make

make install

2 配置及编译安装相关的选项有
 --cross-prefix=PREFIX   use PREFIX for compilation tools []
 --enable-cross-compile  assume a cross-compiler is used
 
 --disable-ffserver      disable ffserver build
 --disable-postproc      disable libpostproc build
 --disable-ffplay        disable ffplay build

 --arch=ARCH             select architecture []
 --cpu=CPU               select the minimum required CPU (affects
                          instruction selection, may crash on older CPUs)
 --target-os=OS          compiler targets OS []                          

 --enable-libfaac        enable FAAC support via libfaac [no]
 --enable-libmp3lame     enable MP3 encoding via libmp3lame [no]
 --enable-libxvid        enable Xvid encoding via xvidcore,
                         native MPEG-4/Xvid encoder exists [no]

 --host-cc=HOSTCC        use host C compiler HOSTCC
 --host-cflags=HCFLAGS   use HCFLAGS when compiling for host
 --host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
 --host-libs=HLIBS       use libs HLIBS when linking for host
 
 --extra-cflags=ECFLAGS  add ECFLAGS to CFLAGS []
 --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS []
 --extra-libs=ELIBS      add ELIBS []
 
 --sysroot=PATH          root of cross-build tree
 --sysinclude=PATH       location of cross-build system headers 

实际的配置参数为:

./configure --prefix=/usr/local/arm \
--cross-prefix=arm-none-linux-gnueabi- --enable-cross-compile \
--target-os=linux --arch=armv6j \
--disable-ffserver --disable-postproc --disable-ffplay \
--enable-libmp3lame --enable-libxvid \
--sysinclude=/usr/local/arm/include \
--extra-cflags=-I/usr/local/arm/include \
--extra-ldflags=-L/usr/local/arm/lib \
--enable-gpl

其中要注意--cross-prefix的设置最后要有符号- , --arch选项要根据自己的GCC的选项加,我的编译的选项有-march=armv6j,不清楚就不要加.
最后加--enable-gpl是因为--enable-libxvid选项,这造成了与--enable-libfaac选项冲突。

然后
make

以root身份运行
make install

3 测试
将安装目录中的ffmpeg程序拷贝到设备上,测试从视频中截取一张图片
ffmpeg -i 12.mp4 -y -f image2 -ss 10.010 -t 0.001 -s 320x240 test.jpg

成功执行,说明ffmpeg交叉编译顺利完成。

Ubuntu/Debian交叉编译安装ARM平台版本的ffmpeg的更多相关文章

  1. Ubuntu/Debian 8 安装 Intel realsense 摄像头驱动

    ## Make Ubuntu/Debian Up-to-date1. sudo apt-get update && sudo apt-get upgrade && su ...

  2. 在 Ubuntu/Debian 下安装 PHP7.3 教程

    介绍 最近的 PHP 7.3.0 已经在 2018 年12月6日 发布 GA,大家已经可以开始第一时间体验新版本了,这里先放出 PHP7.3 安装的教程以便大家升级. 适用系统: Ubuntu 18. ...

  3. 交叉编译安装ARM平台上的Qt

    一.宿主机环境搭建: 编译需要x11库的支持,在Ubuntu下安装命令: sudo apt-get install libx11-dev libxext-dev libxtst-dev 二.下载源码包 ...

  4. Debian 8 安装Nginx最新版本

    在Debian下如果直接apt-get install nginx直接装发现nginx版本是很旧的,本文主要讲一下如何在Debian 8上装新版的nginx. 原文资料:https://nginx.o ...

  5. Ubuntu/Debian 微信安装

    1. 更新系统 $ sudo apt-get update $ sudo apt-get install git-core curl build-essential openssl libssl-de ...

  6. LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP

    适用环境: 系统支持:CentOS.Ubuntu.Debian 内存要求:≥128M 安装了什么: 1.Nginx-1.2.1 2.MySQL 5.5.25 3.PHP 5.2.17或PHP 5.3. ...

  7. 使用ndk交叉编译android各平台版本的第三方库

    只要弄明白了ndk-bundle的目录结构,交叉编译的基本原理就可以自行编写脚本去编译了.从仓库拿下代码包后,一般在linux平台下编译当前平台使用的库,只要使用其自动配置脚本configure进行平 ...

  8. ubuntu 10.04 安装arm交叉编译器

    家里有一台cotext-A9(armv7-a) 的盒子,现在不用了, 一直想着废物利用.于是想怎么为这盒子编译程序. 目标机器: root@routon-h1:/# uname -a Linux ro ...

  9. ubuntu 14.04安装postgresql最新版本

    官网:https://www.postgresql.org/download/linux/ubuntu/ ----------------------------------------------- ...

随机推荐

  1. Orchard运用 - 学习资源分享

    这段时间研究Orchard,看到一些资源十分有用. 比如国内还是有些牛人在分享心得,在此也广播一下给新手: JustRun对Orchard的一些代码分析 Orchard源码分析 Orchard中文社区 ...

  2. 使用SQL查询连续号码段

    原文http://www.cnblogs.com/tc310/archive/2010/09/17/1829276.html CREATE TABLE #test(fphm INT ,kshm CHA ...

  3. hadoop文件系统与I/O流

    本文地址:http://www.cnblogs.com/archimedes/p/hadoop-filesystem-io.html,转载请注明源地址. hadoop借鉴了Linux虚拟文件系统的概念 ...

  4. [Firebase] 3. Firebase Simple Login Form

    Using $firebaseSimpleLogin service. Here we use three methods for login, logout, register and getCur ...

  5. 取石子 (四)_nyoj_161(博弈-奇异矩阵).java

    取石子 (四) 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 4   描述 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是 ...

  6. 转换和删除重复命令tr

    前几篇文章介绍了几个用于处理字符的命令和工具,然而在处理大小写转换.删除重复字符等任务时,这些命令处理起来相对较为麻烦.这里将简单介绍Linux下自带的tr命令,相对于其他命令而言,其语法较为简单,比 ...

  7. 你远比想象中强大pdf

      读后感: 序 一.强化自我认知 认识你自己 你认为什么东西是最重要的呢? 这个问题的答案就是价值观. 让定期审视人生成为习惯 除去恐惧 树立目标 二.改变思维模式 选择,记住你的选择(做决定) 巅 ...

  8. sublime text3 3176激活码

    sublime text3 3176激活码   改host文件 #sublime 127.0.0.1 license.sublimehq.com 127.0.0.1 45.55.255.55 127. ...

  9. ant design pro (十六)advanced 权限管理

    一.概述 原文地址:https://pro.ant.design/docs/authority-management-cn 权限控制是中后台系统中常见的需求之一,你可以利用我们提供的权限控制组件,实现 ...

  10. Bitmap尺度变换

    Bitmap bitMap = BitmapFactory.decodeFile(path); int width = bitMap.getWidth(); int height = bitMap.g ...