linux 交叉编译ffplay,交叉编译ffmpeg生成ffplay
交叉编译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相关推荐
- linux中用安装ffmpeg和ffplay
首先需要下载X264源码,ffmpeg源码和SDL源码(如果没有装SDL,则ffplay无法正常运行) x264源码下载地址: Index of /pub/videolan/x264/snapshot ...
- 一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay
一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay 最近想研究下ffplay的代码,学习代码是枯燥无味的,也是抽象的,学习一个 ...
- librtmp linux下 编译,交叉编译能在Atlas500(aarch64)上运行的ffmpeg+x264+librtmp
小白编译的过程,请指点 1.在Linux上准备交叉编译环境 1.1准备交叉编译链,文件夹名字叫Euler_compile_env_cross,申请把 1.2修改/etc/profile文件,在最后一行 ...
- 2019编译ffepeg vs_如何在windows10下使用vs2017编译最新版本的FFmpeg和ffplay
该文章描述了如何在windows10 64位系统下面编译出FFmpeg的库及其自带的ffplay播放器,而且全部采用最新的版本,这样我们可以在vs2017的ide下调试ffplay,能使我们更容易学习 ...
- Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)
文章目录 交叉编译 1.编译 2.本地编译 3.交叉编译 交叉编译工具链 交叉编译 在嵌入式系统开发中,经常会听到一个词:交叉编译.到底什么是"交叉编译"呢?为什么要使用" ...
- linux交叉编译openssl,交叉编译openssl for linux arm-v5te-linux-gnueabi工具链
我遇到了同样的问题并写了一本关于如何交叉编译openssl for arm的手册 . 我希望本手册能给你一些想法: 这个过程非常简单 . 在本手册中,我们将给出一个在Ubuntu Linux系统中交叉 ...
- 音视频高级开发——如何快速学习FFmpeg丨ffplay、ffmpeg命令如何编程实现
如何更快速地掌握FFmpeg 1.为什么要学FFmpeg 2.FFmpeg面向对象思想分析 3.ffplay.ffmpeg命令如何编程实现 4.流媒体服务器要怎么学 [技术分享篇]音视频开发--如何快 ...
- Linux环境下交叉编译mosquitto及其依赖
本文的目录索引 文章目录 **本文的目录索引** **Linux环境下交叉编译mosquitto** 1.相关依赖(两个库外加一个交叉编译工具链) 2.开发环境以及目标环境说明 3.准备适用的交叉编译 ...
- 嵌入式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 ...
- 【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )
FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 ...
最新文章
- p ython笔记第一天
- matlab函数输入顺序,求助:在MATLAB里如何输入时间序列中的时间
- 港府拟修例禁止电子烟入口及销售 保障市民健康
- puppy linux中文设置,Puppy Linux 中文支持包制作方法
- opencv Hog学习总结
- java nio 客户端_Java网络编程:Netty框架学习(二)---Java NIO,实现简单的服务端客户端消息传输...
- [linux][nginx] 常用2
- 【渝粤教育】广东开放大学 建筑设备 形成性考核 (33)
- selenium RC优化代码3
- python学生成绩表_通过excel表格分析学生成绩
- part-15 开环增益Avol
- javaweb问题集锦: HikariPool-1 - Connection is not available, request timed out after 60001ms.
- 「CSS」知识点笔记:transition
- 网站是否进行过SEO网站优化?主要就看这三点!
- html 爱心树,jQuery结合HTML5制作的爱心树表白动画
- 原来 SQL 中的 NULL 是这么回事儿
- MySQL在服务里找不到(未卸载)
- 网页上跳转直接添加QQ好友、加入QQ群
- stm32f407 四路pwm输出_STM32之---PWM
- 音频转文字怎么转?这些方法值得一试