博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu下编译ffmpeg并用eclipse调试
阅读量:5174 次
发布时间:2019-06-13

本文共 2524 字,大约阅读时间需要 8 分钟。

一、下载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

转载于:https://www.cnblogs.com/jameszh/p/4235954.html

你可能感兴趣的文章
C#设计模式之抽象工厂
查看>>
NOSQL
查看>>
Oracle存储过程由例子到理论
查看>>
正因为我们是前端,所以代码更需要优雅
查看>>
实验四 主存空间的分配和回收
查看>>
LeetCode 14. 最长公共前缀(Longest Common Prefix)
查看>>
Ubuntu 12.04 编译最新版u-boot-2012.04
查看>>
Access转Sqlite的最简单的方法(不需要DB Manager)
查看>>
cordova AndroidStudio3.0 升级报错问题
查看>>
【译】10个机器学习的JavaScript示例
查看>>
虚拟机的三种网络模式
查看>>
第九章 设计用户界面 之 设计实现界面行为
查看>>
检测一个对象方法是否存在
查看>>
python_day4学习笔记
查看>>
Azure中国CDN全球覆盖功能初探
查看>>
input autocomplete 文本框自动检索
查看>>
Android framework编译出来的jar包classes.jar的位置
查看>>
H5 App开发用WeX5垃圾 试用一周,我果断放弃了wex5
查看>>
django配置(二)邮箱配置
查看>>
redis持久化和分布式实现
查看>>