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交叉编译顺利完成。

转载于:https://www.cnblogs.com/prettyshuang/p/5552300.html

Ubuntu/Debian交叉编译安装ARM平台版本的ffmpeg相关推荐

  1. ubuntu下如何安装两个版本OpenCV?

    本文首发于微信公众号「3D视觉工坊」--ubuntu下如何安装两个版本OpenCV? 前言 由于在VSLAM技术研究过程中,经常会涉及OpenCV不同版本在ubuntu系统下的安装.因此小凡在此简单总 ...

  2. Ubuntu 20.04 安装Tensorflow GPU版本 (GTX-1060显卡)

    Ubuntu 20.04 安装Tensorflow GPU版本 (GTX-1060显卡) 参考: https://cyfeng.science/2020/05/02/ubuntu-install-nv ...

  3. Ubuntu 16.04 安装ARM交叉编译工具

    我安装的ARM 编译器是:toolchain_gnueabi-4.4.0_ARMv5TE,其他的编译器也是一样的安装方式,可以参考 1)安装交叉编译器 ---------------------- $ ...

  4. docker image aarch64 x86_64_「docker」交叉编译适用于ARM平台的Docker源码

    前言 docker的编译环境实际是创建了一个docker容器,在docker容器内对代码进行编译.创建该docker容器的过程中,会安装一些编译docker源码需要的第三方库以及go语言环境.此处需要 ...

  5. Ubuntu之cuda安装及历史版本安装

    一.cuda简介   NVIDIA CUDA工具包提供了开发环境,可供创建经 GPU 加速的高性能应用.借助 CUDA 工具包,您可以在经 GPU 加速的嵌入式系统.台式工作站.企业数据中心.基于云的 ...

  6. phpst安装memcache扩展_在 Ubuntu/Debian 下安装 PHP7.3 教程

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

  7. debian 安装 php,Ubuntu/Debian上安装Nginx+php环境详细教程

    尽管Apache已经占据半片江山,但很多人仍然在寻找其他的方式去托管他们的站点,Apache不只是一个选择,其他很多优秀的服务器程序例如lighthttp和nginx也是不错的选择.本教程将要向您展现 ...

  8. Ubuntu 18.04安装CUDA(版本10.2)和cuDNN

    1.系统要求 2.安装前的要求 3.runfile安装(不支持跨平台) 4.后续安装操作 5.安装cuDNN 6.汇总问题 本文基于Ubuntu 18.04.3 LTS 64位安装CUDA 10.2和 ...

  9. Ubuntu 两步安装 Teamviewer 最新版本(官方方法)

    在ubuntu teamviewer使用网上的方法总是安装失败 环境:Ubuntu 14.04/16.04 TeamViewer: 以15.1版本为例 1.teamviewer下载地址: https: ...

最新文章

  1. Android 图片(ImageView)设置透明的方法
  2. 云原生生态周报 Vol. 12 | K8s 1.16 API 重大变更
  3. 安装phproject之一
  4. Oracle 之 管理
  5. shiro框架,自定义realm注入service失败解决办法
  6. 超过千字的文章,才统计勤写标兵
  7. matlab神经网络工具箱教程,matlab神经网络能做什么
  8. Java计算同比环比
  9. 如何使用word删除签名图片背景
  10. 修改hosts文件屏蔽广告原理及实现
  11. 转 纯真IP数据库格式详解
  12. Win7 每天定时关机
  13. 【寻工记】-上班第一天
  14. kali WEP 破解
  15. #一份怀念# 致亲爱的旺旺狗狗
  16. vue 在线阅读PDF
  17. 【面试总结】涵盖1-3年Java程序员必须精通的面试技巧
  18. 支付宝查询自己UID
  19. 知识图谱及其关键技术
  20. LiDAR 4 固态激光雷达 (Flash LiDAR)

热门文章

  1. 上下界网络流-无源汇可行流与有源汇最大流
  2. 数组|leetcode35.搜索插入位置
  3. java 访问access数据库_使用JAVA访问ACCESS数据库的方法
  4. 鸿蒙系统多屏协同,官方铁证!鸿蒙 2.0 手机来了,EMUI 11 多屏协同支持鸿蒙手机...
  5. CMD各段定义与分配方法指引
  6. 前仓后仓是什么意思_高支纱到底是什么?镰仓衬衫面料全解析
  7. axure 小程序 网盘_万门大学微信小程序实战开发特训班【完结】网盘高清全套最新系列精品课程...
  8. python手机号码正确编程_python 小练习之生成手机号码
  9. python和stata_从Python运行Stata do文件
  10. java强引用软引用深刻理解_Java-强引用、软引用、弱引用、虚引用