ubuntu下编译ffmpeg并用eclipse调试
一、下载ffnpeg源码
下载地址:http://ffmpeg.org/download.html
二、解决版本问题
可能之前你编译过ffmpeg,或者装过相关的库,那都要先卸载掉,否则用的时候会报一堆版本的错误。
卸载的具体做法:
sudo apt-get remove ffmpeg
sudo apt-get remove libavcodec52 libavdevice52 libavfilter0 libavformat52 libavutil49 libpostproc
sudo apt-get isntall remove libx264-dev
如果这样还不行,那就手动解决:
库文件路径:/usr/lib
头文件路径:/usr/include
进入这些路径看看是否有ffmpeg中的库,如果有就全部删除掉;
备注:有时候库也会安装在:/use/local下。
三、安装ffmpeg依赖库
sudo apt-get update
sudo apt-get install build-essential git-core checkinstall texi2html libfaac-dev
libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev
libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
四、安装yasm依赖库
为什么单独说这个依赖库呢,是因为linux本身有这个库,但是编译ffmpeg的时候提示这个库版本太低,至少要1.0以上的版本,用命令查看:yasm --version,发现linux自带的版本只有0.8,所以就需要我们重新安装各个库:
1、从网上:http://yasm.tortall.net/Download.html下载yasm;
2、解压后进入yasm目录;
3、./configure
4、make
5、sudo make install
五、安装lame库
这个一个支持mp3编码的库文件。
1、网上:http://lame.sourceforge.net/download.php,下载lame源文件;
2、解压后进入到lame目录;
3、./configure
4、make
5、sudo make install
六、安装X264库
1、网上:http://www.videolan.org/developers/x264.html,下载x264源文件;
2、解压后进入到x264目录;
3、./configure --enable-static
4、make
5、sudo make install
七、编译ffmpeg
至此大部分所需要的库已经安装完毕,如果有需要还可以再添加所需要的库。
1、进入到ffmpeg目录;
2、./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac
--enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --disable-optimizations
--disable-asm
3、make
4、sudo make install
八、把ffmpeg项目导入eclipse下进行调试
1、建立项目工程,这里我们选File->new->Makefile Project with Existing Code;
2、在Import Existing Code对话框中的Toolchain for Indexer Settings中选Linux GCC,然后点Browse找到源代码文件夹进行源码导入,然后点OK->Finish,这时可以看到新建的工程中已经包含了所有的源码和编译后的文件;
3、右键点击ffmpeg_g选debug as->Local c/c++ Application->gdb/mi 然后Ok;
4、然后进行调试即可;
九、导入文件编译时的错误
导入文件到eclipse后进行编译,发现会报一堆如下宏定义的错误。
1、Description Resource Path Location Type Symbol 'CODEC_CAP_EXPERIMENTAL' could not be resolved utils.c /ffmpeg-0.8.9/libavcodec
错误分析:
经过仔细看源代码,跟踪到错误处,发现是头文件包含的问题。
很多的头文件是在文件夹中:如avcodec.h就在libavcodec文件夹中,但在头文件包含中没有给具体路径,所以就导致头文件没有包含进去,自然编译就会出错。
解决方法:
定位到错误发生的地方,查看头文件是否包含正确,给出正确的路径。如#include"libavcodec\avcodec.h"
2、在allcodecs.c文件中的错误最难找,发现报了几百个错误,通过光标放到错误处,有如下错误'ONFIG_VC1_DXVA2_HWACCEL'could not be resolved。
把该错误写在文件中,通过右键open declaration 找到该字符串的定义文件,发现是在config.h文件中,而allocodecs.c又没有包含这个头文件,自然会报一大堆的错误,
所以把config.h包含到allcodecs.h文件中即可。
本文参考:http://www.linuxidc.com/Linux/2011-05/36286p2.htm
ubuntu下编译ffmpeg并用eclipse调试的更多相关文章
- Linux下编译ffmpeg并用GDB调试
1.在Ubuntu界面上调处命令行界面,最方便的方式是使用快捷键Ctrl+Alt+T. 2.安装SDL SDL是一个开源的多媒体开发库,可以设置图像和视频的绘制等操作.如果不安装SDL,FFMPEG将 ...
- 在Ubuntu下编译FFmpeg
第一步:准备编译环境 .tar.bz2 -2245/ ./configure --enable-static--enable-shared--prefix=/usr/localmakesudomake ...
- ubuntu 下 编译ffmpeg 3.1.1
1,下载ggmpeg源码:http://ffmpeg.org/download.html 2.下载ndk ,百度 3.配置环境 3.1 编译FFMPEG时,出现了 ffmpeg yasm not fo ...
- ubuntu下编译ffmpeg+SDL+ffplay提取motion vector
编译ffmpeg: 第一步: 从官网http://ffmpeg.org/下载最新版本. 解压tar -xjvf ffmpeg-3.3.1.tar.bz2 进入目录cd ffmpeg-3.3.1 第二步 ...
- [笔记] Ubuntu下编译ffmpeg+openh264+x264
[下载代码] - ffmpeg: git clone git://source.ffmpeg.org/ffmpeg.git - openh264: git clone https://github ...
- ubuntu下编译原生ffmpeg
本文主要介绍Linux 系统下如何编译Ffmpeg,编译环境是Ubuntu 16.04,Ffmpeg版本是3.4.2.Windows环境 下如何编译ffmpeg前面有博文介绍,也录有视频,感兴趣的同学 ...
- VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了. 它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...
- ubuntu下编译VLC
ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...
- Android 环境下编译FFmpeg
Android 环境下编译FFmpeg 开发环境:Ubuntu 12.04.2 LTS , android-sdk-linux, android-ndk-r8e 一 .X264 编译 1. X2 ...
随机推荐
- SQLSERVER store procedure 临时表
有些时候显示重复数据时,使用: ) 但有些时候表A过大或者逻辑复杂.显示数据时,会造成性能的影响,这时你就可以使用临时表: ) create table #temp( XXX , XXX) )in ...
- ARM汇编指令集3
常用ARM指令1:数据处理指令 •数据传输指令 mov mvn mov r1, r0 @两个寄存器之间数据传递 mov r1, #0xff ...
- 《模式 工程化实现及扩展 (设计模式 C#版)》 - 书摘精要
(P3) 面向对象的典型原则可以划分为两类 —— “面向类”的和“面向包”的: “面向类”的,包括:SRP —— 单一职责原则:OCP —— 开放封闭原则:LSP —— 里氏替换原则:DIP —— 依 ...
- js 复制粘贴功能记录
最近工作中需要在前端页面中使用代码完成剪贴板的读写,网上搜索了下相应的资料,记录下... 这个功能有两个办法一个是js方式,一个是使用flash 一.JS方法 1.复制 首先复制的过程分为两步曲,无论 ...
- Arcgis for Javascript之featureLayer图和属性的互操作
说明:主要实现加载FeatureLayer与显示属性表,并实现属性表与地图的联动,首先,看看实现后的效果: 显示效果 如上图所示,本文章主要实现了以下几个功能:1.FeatureLayer属性表的分页 ...
- 前端之HTML补充
一.列表 (1).无序列表<ul> <body> <ul type="disc"> <li>属性一</li> <l ...
- CentOS7 配置光盘iso镜像为本地yum源
因为系统使用的最小化安装,所以很多软件没有安装上,又无法上网,为了方便,所以直接将上传的iso镜像直接作为yum源. 我已经将光盘的iso镜像上传至服务器. 接下来就是将iso的光盘镜像进行挂载了 m ...
- model里面字段choices的values值的选择
代码如下: Model: class Person(models.Model): name = models.CharField(max_length=200) CATEGORY_CHOICES = ...
- Oracle 11G RAC:生产环境下架构
转: it168网站 原创 作者:刘炳林 在真实环境搭建一套Oracle RAC就好比是一堂劳动课,劳动前需要准备好劳动工具,对劳动课内容有充分的认识;按照步骤一步一步进行,需要考虑劳动过程中可能遇 ...
- poj 3046 Ant Counting——多重集合的背包
题目:http://poj.org/problem?id=3046 多重集合的背包问题. 1.式子:考虑dp[ i ][ j ]能从dp[ i-1 ][ k ](max(0 , j - c[ i ] ...