一、下载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调试的更多相关文章

  1. Linux下编译ffmpeg并用GDB调试

    1.在Ubuntu界面上调处命令行界面,最方便的方式是使用快捷键Ctrl+Alt+T. 2.安装SDL SDL是一个开源的多媒体开发库,可以设置图像和视频的绘制等操作.如果不安装SDL,FFMPEG将 ...

  2. 在Ubuntu下编译FFmpeg

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

  3. ubuntu 下 编译ffmpeg 3.1.1

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

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

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

  5. [笔记] Ubuntu下编译ffmpeg+openh264+x264

    [下载代码]   - ffmpeg: git clone git://source.ffmpeg.org/ffmpeg.git - openh264: git clone https://github ...

  6. ubuntu下编译原生ffmpeg

    本文主要介绍Linux 系统下如何编译Ffmpeg,编译环境是Ubuntu 16.04,Ffmpeg版本是3.4.2.Windows环境 下如何编译ffmpeg前面有博文介绍,也录有视频,感兴趣的同学 ...

  7. VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP

    PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了.  它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...

  8. ubuntu下编译VLC

    ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...

  9. Android 环境下编译FFmpeg

    Android 环境下编译FFmpeg 开发环境:Ubuntu 12.04.2 LTS , android-sdk-linux, android-ndk-r8e 一 .X264 编译 1.    X2 ...

随机推荐

  1. LeetCode OJ:Find Peak Element(寻找峰值元素)

    A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...

  2. C++轮子队-第三周(需求改进&原型设计)

    需求改进&原型设计 一.需求完善 (一)系统功能(补充) 图形界面(图片如下图所示:) 根据需求与组内讨论结果,现归纳图形界面方面需要的设计与相应功能: 数据-图形界面中间类: 数字方块类 N ...

  3. Android代码混淆及项目发布方法记录

     Android代码混淆及项目发布步骤记录 本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文. Android代码混淆及项目发布步骤记录 一.清理 ...

  4. 自定义View实战--实现一个清新美观的加载按钮

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 在 Dribble 上偶然看到了一组交互如下: 当时在心里问自己能不能做,答案肯定是能做的,不过我比较懒,觉得中间那个伸缩变化要编写 ...

  5. VS2017连接到中国区的Azure

    1. 安装Azure Environment Select扩展 2. 选择中国区的Azure 3. 之后就可以使用中国区的账号登录了 参考链接:https://docs.azure.cn/zh-cn/ ...

  6. vim 插件使用

    a.vim的安装相当简单,下载a.vim后丢进Vim插件目录(一般为~/.vim/plugin),必要时再重启一下Vim就可以使用了. 头/源文件切换命令 :A 头文件/源文件切换 :AS 分割窗后并 ...

  7. 有效处理Java异常三原则

    Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮.易于调试.异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? ...

  8. SGU 507 Treediff

    这个题目  其实可以暴力  用两个 set 合并: 每次放进去一个元素只要找到这个元素第一个比他大的元素和最后一个比他小的元素:然后更新最优值: 证明为什么不会超时:  假如最后集合的小的为 S1,大 ...

  9. 使用IntelliJ IDEA开发SpringMVC网站的学习

    最近开始了“使用IntelliJ IDEA开发SpringMVC网站”的学习,有幸看到一份非常完善的学习资料,笔者非常用心的详细注释了一份关于博客的开发过程和细节,并且在评论中回复大家提出的问题,非常 ...

  10. Docker从入门到安装MySQL

    Docker 的简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...