交叉编译ffmpeg并生成ffplay

1.交叉编译SDL库

a. ./configure --prefix=/usr/local/sdl-arm --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux --enable-video-fbcon --disable-video-directfb

b. make

c. make install

2.交叉编译ffmpeg

a. ./configure --enable-cross-compile --target-os=linux --cross-prefix=arm-linux- --cc=arm-linux-gcc --enable-shared --arch=arm --enable-gpl --prefix=/usr/local/ffmpeg-arm --enable-ffplay --extra-cflags=-I/usr/local/sdl-arm/include/SDL --extra-ldflags=-L/usr/local/sdl-arm/lib --extra-libs=-lSDL

注:由于configure后生成的config.mak文件中CONFIG_FFPLAY=yes,HAVE_SDL=yes等都是被注释掉的,所以需要手动修改config.mak文件,将CONFIG_FFPLAY=yes HAVE_SDL=yes的注释去掉,同时必须手动指定SDL的头文件,库路径,并且-lSDL来链接

需要生成debug 符号时增加--disable-optimizations --disable-mmx --disable-stripping

b.make

c.make install

--prefix=PEWFIX

'--prefix'是最常用的选项.制作出的'Makefile'会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分. 举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到"/opt/gnu/share":

$ ./configure --prefix=/opt/gnu

--host=HOST

指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测.

--target=GARGET

指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用'--host'选项的值.

--disable-FEATURE

一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置.如果默认是提供这些特性,可以使用'--disable-FEATURE'来禁用它,这里'FEATURE'是特性的名字.例如:

$ ./configure --disable-gui

-enable-FEATURE[=ARG]

相反的,一些软件包可能提供了一些默认被禁止的特性,可以使用'--enable-FEATURE'来起用它.这里'FEATURE'是特性的名字.一个特性可能会接受一个可选的参数.例如:

$ ./configure --enable-buffers=128

`--enable-FEATURE=no'与上面提到的'--disable-FEATURE'是同义的.

--cross-prefix=PREFIX    为编译工具指定路径 | use PREFIX for compilation tools []

--cross-compile          假定使用了交叉编译 | assume a cross-compiler is used

--cc=CC                  指定使用何种C编译器(默认gcc)use C compiler CC [gcc]

--extra-cflags=ECFLAGS   添加ECFLAGS到CFLAGS | add ECFLAGS to CFLAGS []

--extra-ldflags=ELDFLAGS 添加ELDFLAGS到LDFLAGS(默认-Wl,--as-needed)| add ELDFLAGS to LDFLAGS [ -Wl,--as-needed]

--extra-libs=ELIBS       添加ELIBS | add ELIBS []

--arch=ARCH              选择机器架构(默认x86)select architecture  [x86]

但是:

交叉编译ffmpeg,要把x264加进来,首先configure:

#./configure --prefix=/usr/local/ --cross-compile --arch=libavcodec/armv4l/ --cross-prefix=/usr/local/arm/2.95.3/bin/arm-linux- --cc=gcc --enable-static --disable-ipv6 --enable-libx264 --enable-gpl --enable-pthreads --disable-ffserver --disable-ffplay --target-os=linux --disable-network --disable-opts

有错误,如:

ERROR: x264 not found 你在configure时把libx264库加上就可以了:--extra-libs=/usr/local/lib/ 此路径是你的x264的安装路径。

如果出现如下错误,

/usr/local/arm/2.95.3/bin/arm-linux-gcc is unable to create an executable file.

C compiler test failed.

会发现只要去掉--extra-libs=/usr/local/lib/后,这个错误就没了,但是有ERROR: x264 not found 那个错误,郁闷,怎么解决呢?

......

我又重新编译安装了一下x264,把它的prefix由--prefix=/usr/local改到交叉编译器的目录下,即--prefix=/usr/local /arm/2.95.3/arm-linux/后configure就能够通过了。

参照以上网上的方法:

这里的问题还是没有解决!暂且不添加x264库了!!!

阅读(1012) | 评论(0) | 转发(0) |

linux 交叉编译ffplay,交叉编译ffmpeg生成ffplay相关推荐

  1. linux中用安装ffmpeg和ffplay

    首先需要下载X264源码,ffmpeg源码和SDL源码(如果没有装SDL,则ffplay无法正常运行) x264源码下载地址: Index of /pub/videolan/x264/snapshot ...

  2. 一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay

    一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay 最近想研究下ffplay的代码,学习代码是枯燥无味的,也是抽象的,学习一个 ...

  3. librtmp linux下 编译,交叉编译能在Atlas500(aarch64)上运行的ffmpeg+x264+librtmp

    小白编译的过程,请指点 1.在Linux上准备交叉编译环境 1.1准备交叉编译链,文件夹名字叫Euler_compile_env_cross,申请把 1.2修改/etc/profile文件,在最后一行 ...

  4. 2019编译ffepeg vs_如何在windows10下使用vs2017编译最新版本的FFmpeg和ffplay

    该文章描述了如何在windows10 64位系统下面编译出FFmpeg的库及其自带的ffplay播放器,而且全部采用最新的版本,这样我们可以在vs2017的ide下调试ffplay,能使我们更容易学习 ...

  5. Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)

    文章目录 交叉编译 1.编译 2.本地编译 3.交叉编译 交叉编译工具链 交叉编译 在嵌入式系统开发中,经常会听到一个词:交叉编译.到底什么是"交叉编译"呢?为什么要使用" ...

  6. linux交叉编译openssl,交叉编译openssl for linux arm-v5te-linux-gnueabi工具链

    我遇到了同样的问题并写了一本关于如何交叉编译openssl for arm的手册 . 我希望本手册能给你一些想法: 这个过程非常简单 . 在本手册中,我们将给出一个在Ubuntu Linux系统中交叉 ...

  7. 音视频高级开发——如何快速学习FFmpeg丨ffplay、ffmpeg命令如何编程实现

    如何更快速地掌握FFmpeg 1.为什么要学FFmpeg 2.FFmpeg面向对象思想分析 3.ffplay.ffmpeg命令如何编程实现 4.流媒体服务器要怎么学 [技术分享篇]音视频开发--如何快 ...

  8. Linux环境下交叉编译mosquitto及其依赖

    本文的目录索引 文章目录 **本文的目录索引** **Linux环境下交叉编译mosquitto** 1.相关依赖(两个库外加一个交叉编译工具链) 2.开发环境以及目标环境说明 3.准备适用的交叉编译 ...

  9. 嵌入式linux开发,交叉编译qt4.8.5报错:Makefile:1054: recipe for target ‘.moc/release-shared-emb-arm/moc_qabstract

    一.问题描述. 嵌入式linux开发,交叉编译qt4.8.5,执行make时报错如下: ms@ubuntu:~/work/code/qt/opensource/qt-everywhere-openso ...

  10. 【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 ...

最新文章

  1. p ython笔记第一天
  2. matlab函数输入顺序,求助:在MATLAB里如何输入时间序列中的时间
  3. 港府拟修例禁止电子烟入口及销售 保障市民健康
  4. puppy linux中文设置,Puppy Linux 中文支持包制作方法
  5. opencv Hog学习总结
  6. java nio 客户端_Java网络编程:Netty框架学习(二)---Java NIO,实现简单的服务端客户端消息传输...
  7. [linux][nginx] 常用2
  8. 【渝粤教育】广东开放大学 建筑设备 形成性考核 (33)
  9. selenium RC优化代码3
  10. python学生成绩表_通过excel表格分析学生成绩
  11. part-15 开环增益Avol
  12. javaweb问题集锦: HikariPool-1 - Connection is not available, request timed out after 60001ms.
  13. 「CSS」知识点笔记:transition
  14. 网站是否进行过SEO网站优化?主要就看这三点!
  15. html 爱心树,jQuery结合HTML5制作的爱心树表白动画
  16. 原来 SQL 中的 NULL 是这么回事儿
  17. MySQL在服务里找不到(未卸载)
  18. 网页上跳转直接添加QQ好友、加入QQ群
  19. stm32f407 四路pwm输出_STM32之---PWM
  20. 音频转文字怎么转?这些方法值得一试

热门文章

  1. 什么是Pagerank?Pagerank算法介绍与计算公式
  2. 12星座哪些人会重友轻爱?
  3. 柯尔莫哥洛夫拟合优度检验函数(Matlab实现)
  4. 服务器装win7系统流程图,Win7安装详细图文教程
  5. GAEA Winsieve v1.2 1CD(快速输入和打印结晶粒度分析曲线)
  6. Qt-十字消除小游戏
  7. UDP编程与Socket
  8. 通达信自动交易软件步骤分析
  9. pmp华为内部资料,成功的项目管理是怎样的?
  10. MOSFET知识小结