环境:ubuntu16.04

交叉编译器版本:4.8.3

依赖x264,lame

x264:

1.wget ftp://ftp.videolan.org/pub/x264/snapshots/last_stable_x264.tar.bz2

2.tar xvf last_stable_x264.tar.bz2

3.cd x264-snapshot-20170903-2245-stable

4.export CC=arm-linux-gnueabi-gcc

5.export AR=arm-linux-gnueabi-ar

6.mkdir build

7.cd build

8. ../configure --enable-static --enable-shared --disable-asm --prefix=$PWD/__install --host=arm-linux-gnueabi

9.make

10.make install

lame:

1.wget https://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz

2.tar xvf lame-3.99.5.tar.gz

3.cd lame-3.99.5
4.mkdir build

5.cd build

6. ../configure --prefix=$PWD/__install --host=arm-linux-gnueabi

7.make

8.make install

ffmpeg:

1.wget www.ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2

2. tar xvf ffmpeg-snapshot.tar.bz2

3.cd ffmpeg

4.mkdir build

5.cd build

6. ../configure --cross-prefix=/opt/x86-arm/arm-linux/bin/arm-linux-gnueabi- --disable-asm --enable-static --arch=arm --target-os=linux --prefix=$PWD/_install --disable-x86asm --enable-gpl --enable-libx264  --enable-nonfree --enable-cross-compile --extra-cflags=-I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include --extra-ldflags=-L/home/jello/x264-snapshot-20170903-2245-stable/build/_install/lib --extra-libs=-ldl

7.进过步骤6在当前目录下有ffbuild/config.mak,那么修改此文件

文件中有以下四处需要修改

1.

CFLAGS=  -I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include -march=armv5te -std=c11 -fomit-frame-pointer -marm -pthread -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -Wno-maybe-uninitialized

2.

ASFLAGS=  -I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include -march=armv5te -g

3.

LDFLAGS= -L/home/jello/x264-snapshot-20170903-2245-stable/build/_install/lib  -march=armv5te -Wl,--as-needed -Wl,-z,noexecstack -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample

4.EXTRALIBS=-lx264 -lm -pthread -pthread -lrt -ldl

将以上四项改动如下:

1.

CFLAGS=  -I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include -I/home/jello/lame-3.99.5/build/_install/include/lame -march=armv5te -std=c11 -fomit-frame-pointer -marm -pthread -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -Wno-maybe-uninitialized

2.

ASFLAGS=  -I/home/jello/x264-snapshot-20170903-2245-stable/build/_install/include -I/home/jello/lame-3.99.5/build/_install/include/lame -march=armv5te -g

3.

LDFLAGS= -L/home/jello/x264-snapshot-20170903-2245-stable/build/_install/lib -L/home/jello/lame-3.99.5/build/_install/lib  -march=armv5te -Wl,--as-needed -Wl,-z,noexecstack -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample

4.EXTRALIBS=-lx264 -lm -pthread -pthread -lrt -ldl -lmp3lame

8.make

9.make install

交叉编译完成!!!

ubuntu下交叉编译ffmpeg的更多相关文章

  1. ubuntu下交叉编译lftp

    一.背景: lftp依赖于ncurses,readline和gnutls 二.准备工作 2.1交叉编译ncurses 2.1.1获取ncurses源码 wget ftp://ftp.invisible ...

  2. 在Ubuntu下编译FFmpeg

    第一步:准备编译环境 .tar.bz2 -2245/ ./configure --enable-static--enable-shared--prefix=/usr/localmakesudomake ...

  3. ubuntu下调试ffmpeg程序出现undefined reference to pthread_once ,undefined reference to uncompress错误

    Ubuntu(版本16.04)下默认配置编译Ffmpeg(版本4.1.3configure 添加选项--enable-threads),将编译好的ffmpeg库添加到程序 中进行编译出现undefin ...

  4. Xcode5和ios7下交叉编译ffmpeg

    先申明本机环境 dev-mini:ffmpeg devone$ sw_vers  ProductName:    Mac OS X ProductVersion:  BuildVersion:   1 ...

  5. ubuntu 下 编译ffmpeg 3.1.1

    1,下载ggmpeg源码:http://ffmpeg.org/download.html 2.下载ndk ,百度 3.配置环境 3.1 编译FFMPEG时,出现了 ffmpeg yasm not fo ...

  6. ubuntu下交叉编译imagemagick

    环境:ubuntu16.04 交叉编译器版本号:4.8.3 在编译之前要编译以下其依赖的软件或库:freetype,libpng,libxml2,libtiff,libjpeg,zlib,graphv ...

  7. ubuntu下编译ffmpeg+SDL+ffplay提取motion vector

    编译ffmpeg: 第一步: 从官网http://ffmpeg.org/下载最新版本. 解压tar -xjvf ffmpeg-3.3.1.tar.bz2 进入目录cd ffmpeg-3.3.1 第二步 ...

  8. ubuntu下编译ffmpeg并用eclipse调试

    一.下载ffnpeg源码 下载地址:http://ffmpeg.org/download.html 二.解决版本问题 可能之前你编译过ffmpeg,或者装过相关的库,那都要先卸载掉,否则用的时候会报一 ...

  9. ubuntu 下安装ffmpeg

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视 频的完整解决方案.它包含了非常先进的音频/视频编解码库 ...

随机推荐

  1. 线性参照,M值的相关测试

    怎样使用普通线要素获取带M值的线要素 怎样查看线要素各个折点上的M值,怎样导出为一张表 线性参照:http://resources.arcgis.com/zh-cn/help/main/10.2/in ...

  2. CF1044B Intersecting Subtrees 构造+树论

    正解:构造 解题报告: 传送门 又是一道交互题!爱了爱了! 这题真的,极妙!非常神仙!就非常非常思维题! 直接说解法了吼 说起来实在是简单鸭 就是先问一个对方的联通块中的一个点在我这儿的编号,记为x ...

  3. sql优化 表连接join方式

        sql优化核心 是数据库中 解析器+优化器的工作,我觉得主要有以下几个大方面:1>扫表的方法(索引非索引.主键非主键.书签查.索引下推)2>关联表的方法(三种),关键是内存如何利用 ...

  4. shell_exec() has been disabled for security reasons错误怎么解决?

    ytkah在用composer安装插件时出现了shell_exec() has been disabled for security reasons错误提示,这个是php配置的问题,shell_exe ...

  5. HBase-0.95.1源码分析之split

    split操作执行的是将HBase中较大的Region分为两个.因为split比较耗时,因此split是在独立的线程中完成的,相关类是CompactSplitThread. 首先,CompactSpl ...

  6. java-JProfiler(三)-进行本地JVM的性能监控-监视本地java程序

    1.打开JProfiler 默认会启动快速窗口[或者使用菜单Session→Start Center]打开 这里监视本地java程序,故在 主界面 2.查看监视界面 这时就可以查看 Instance ...

  7. windows环境下为php打开ssh2扩展

    安装步骤 1. 下载 php extension ssh2下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/ 根据自己PHP的 ...

  8. 发现XMind一个超级牛逼的功能

    本来想要自己手动建立下文件夹的结构图,一不小心发现了一个大惊喜. 比如想要看一下360Downloads文件夹下的文件结构,可以先创建一个名叫360Downloads的主节点,然后把其文件夹下的文件直 ...

  9. Locust性能测试3-no-web模式和csv报告保存

    前言 前面是在web页面操作,需要手动的点start启动,结束的时候也需要手工去点stop,没法自定义运行时间,这就不太方便. locust提供了命令行运行的方法,不启动web页面也能运行,这就是no ...

  10. e.printStackTrace() ; 是什么意思?

    catch(Exception e){e.printStackTrace() ;} 当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception ...