最近由于项目需要,必须修改ffmpeg的源码进行修改才能满足项目的需求,但以前我从来没有自己去编译和使用ffmpeg的源代码,一直都是用别人编译好了的sdk,再加上习惯了vs方便的编译环境,要在linux下对如此多的源代码进行编译和调试还真的是一件非常困难的事情。Linux下也没别的什么好的集成开发环境好用,没办法eclipse还凑合吧。好了,废话就不多说了,直接进入正题吧。

第一部分: ffmpeg的编译

首先要下载最新的ffmpeg源代码:

由于我用的是教育网,用svn下载太tm的慢了,1kb/s,估计到明年都下不完。推荐一个网站,除了有ffmpeg的源代码以外还有各个源的源码,并且用现成的sdk(windows下的)。

网址如下:

Step1: 网址

http://ffmpeg.zeranoe.com/builds/

Step2: 版本问题

下载完成以后,一个很重要的工作要做,否则以后你在使用或者调试ffmpeg的时候会出现很多莫名其妙的问题。一定要先检查的清理你的linux下是否已经安装了ffmpeg的库文件,如果安装了,要先remove掉,否则到最近,你的库有的是新的,有的是旧的,到用的时候给你报一堆版本错误,你就哭吧……具体做法:

下面是我在编译的时候出现的版本错误:

ffmpeg: relocation error: ffmpeg: symbol postproc_configuration, version LIBPOSTPROC_51 not defined in file libpostproc.so.51 with link time reference

解决办法:

$: apt-get remove ffmpeg

$: apt-get remove libavcodec52 libavdevice52 libavfilter0 libavformat52 libavutil49 libpostproc

$: apt-get remove libx264-dev

上面的解决办法可能在不同的机子上不一样,因为安装的库可能不同

如果还不行,就手动解决:

库文件的路径:/usr/lib

头文件的路径:/usr/include

进入这些路径看看是否有ffmpeg中的库,如果有,都删除掉。

Step3: 安装ffmpeg所依赖的库文件:

$: sudo apt-get update

$: sudo apt-get install build-essential git-core checkinstall yasm texi2html libfaac-dev /

libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev /

libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev

这个步骤中只提供最常用的配置所需要的库文件,如果在编译ffmpeg中还有其它附加的配置,请使用新立得软件管理器进行安装。

Step4: 安装x264

从Step1中的网址上下载x264源码:

$:./configure –enable-static

$:make

$:make install

Step5: 安装ffmpeg

注意:

1. 如果是安装库文件,一定要使用--enable-shared, 不然不会生成.so文件。

2. 默认的库文件目录是/usr/local/lib,我们把它修改为/usr, 这样在安装的时候方便

$: ./configure --enable-gpl --enable-shared --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libxvid --enable-x11grab --prefix=/usr

$: make

$: sudo make install

第二部分:使用eclipse进行调试

Linux下也没有什么好用的集成开发环境,就eclipse吧。

首先下载eclispe + cdt,这个网上用ubuntu的software center就可以。

这里要注意一下,使用eclipse进行调试,如果ffmpeg源码的编译中使用了—enable-shared选项,那么在调试时会出现无法step into的情况,这个问题折磨了我好久,后来才发现是.so文件干的事,唉……

重新配置:在ffmpeg源码的目录下输入

$: ./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-libopencore-amrnb --enable-version3 --disable-optimizations --disable-asm

$: make

建立项目工程,这里我们选File->new->Makefile Project with Existing Code

n 在Import Existing Code对话框中的Toolchain for Indexer Settings中选Linux GCC

然后点Browse找到源代码文件夹

然后点OK->Finish

可以看到新建的工程中已经包含了所有的源码和编译后的文件。

右键点击ffmpeg_g选debug as->Local c/c++ Application->gdb/mi 然后Ok

好了,想怎么调就怎么调吧。

关于Eclipse的快捷键:

使用vs用习惯了,eclipse调试时的快捷键不太好用,想改。

window->Preference->general->keys->Scheme: Microsoft visual studio

但随之而来的一个问题,F10!

这个键在vs里面是step over, 但eclipse中只要你一按f10就会出出file对话框,后来上网查了一下,解决的办法如下:

Eclipse F10 Key mapping bug

$: gconftool-2 --get /desktop/gnome/interface/menubar_accel

F10

$: gconftool-2 --type string --set /desktop/gnome/interface/menubar_accel "ctrl-shift-m"

最新ffmpeg编译和用eclipse进行源码调试相关推荐

  1. Activemq源码、编译、导入idea、源码调试总结

    1.在本地下载源码 在GitHub官网搜activemq,找到排名第一的,并打开,如图所示,拷贝url地址. activemq托管地址:https://github.com/apache/active ...

  2. 在Eclipse中导入编译MTK平台Android6.0源码的原生Gallery2应用

    源码下载地址 由于工作的需要,需要在Eclipse中调试MTK平台Android6.0的原生Gallery2应用, 网上已经有很多类似的技术文章了,步骤都差不多, 但是MTK在google原生的Gal ...

  3. 12 编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行

    编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行 作者 将狼才鲸 创建日期 2022-11-26 Gitee源码和工程地址:才鲸嵌入式 / 嵌入式QEMU教程 ...

  4. 在Eclipse中进行HotSpot的源码调试--转

    原文地址:http://www.linuxidc.com/Linux/2015-05/117250.htm 在阅读OpenJDK源码的过程中,经常需要运行.调试程序来帮助理解.我们现在已经可以编译出一 ...

  5. android eclipse关联源码,以及源码(代码)以及jar查看软件

    1.eclipse关联源码 步骤一:自已百度下载相应版本的源码,我这里是4.2也就是API=17的版本. 步骤二:找到你安装sdk的目录, G:\Program Files\adt-bundle-wi ...

  6. 最新WordPress微信小程序社区论坛源码多端应用

    WordPress多端应用 WordPress作为后端生成多端小程序.快应用及APP,可用于资讯.新闻.博客.企业官网等 后端 使用开源博客建站系统wordpress和微慕小程序开源版插件 前端使用u ...

  7. 最新仿悬赏猫任务平台完整源码下载+可封装APP

    正文: 最新仿悬赏猫任务平台完整源码下载+可封装APP,这程序是新UI的,前端UI样式没得说,很好看的. 服务器搭建环境:Linux+Centos7.0以上+宝塔,如果你是虚拟主机的话,那是无法搭建的 ...

  8. NanoPi NEO Air使用七:获取并编译U-boot和Linux的源码

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  9. 各类最新Asp .Net Core 项目和示例源码

    1.网站地址:http://www.freeboygirl.com 2.网站Asp .Net Core 资料 http://www.freeboygirl.com/blog/tag/asp%20net ...

最新文章

  1. redis怎么不让存byte_redis用bitfield存储的问题
  2. hibernate 集合类(Collections)映射
  3. POJ 1753 Flip Game DFS枚举
  4. html mvc 分页 保存,Asp.net Mvc3 加载cshtml文件自定义分页+ 查询
  5. 基于Asp.Net Core MVC和AdminLTE的响应式管理后台之侧边栏处理
  6. 前端实战:仿写小米官网第一天
  7. mysql 的一些操作
  8. 我的Android进阶之旅------gt;Android嵌入图像InsetDrawable的使用方法
  9. python颜色参数_python matplotlib:plt.scatter() 大小和颜色参数详解
  10. “由于应用程序配置不正确,应用程序未启动。重新安装应用程序可能会纠正这个问题。”解决思路
  11. Windows 常用快捷键 打开cmd DOS命令
  12. win10系统 你需要权限来执行此操作 System32
  13. ERP是什么管理系统?
  14. Fresher玩深沉
  15. Python学习之路5☞文件处理
  16. 纸质文档转成电子档,30秒即可快速搞定(亲测有效)!
  17. 服务器输出音频文件,云服务器音频输出
  18. Android事件分发简单介绍
  19. 常用JS效果 需要时更新。。。
  20. SpringBoot2.x 监听器详解

热门文章

  1. 由浅到深理解ROS(3)-命名空间
  2. WinXP下替代IIS的新思路
  3. REVERSE-PRACTICE-BUUCTF-4
  4. 【Python学习】 简单语法与常见错误(持续更新)
  5. 【CodeForces - 731C】Socks(并查集,思维)
  6. 【HDU - 5452】Minimum Cut(树形dp 或 最近公共祖先lca+树上差分,转化tricks,思维)
  7. oracle dump enq hw,经典故障分析 - ASSM引发的索引争用与 enq HW -contentio
  8. js和php能生成一样的随机数_JavaScript_JS生成某个范围的随机数【四种情况详解】,前言: JS没有现成的函数,能 - phpStudy...
  9. php向下滑动,js如何判断鼠标滚轮是向下还是向上滚动
  10. 元胞计算机系统,元胞自动机的应用