最新ffmpeg编译和用eclipse进行源码调试
最近由于项目需要,必须修改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进行源码调试相关推荐
- Activemq源码、编译、导入idea、源码调试总结
1.在本地下载源码 在GitHub官网搜activemq,找到排名第一的,并打开,如图所示,拷贝url地址. activemq托管地址:https://github.com/apache/active ...
- 在Eclipse中导入编译MTK平台Android6.0源码的原生Gallery2应用
源码下载地址 由于工作的需要,需要在Eclipse中调试MTK平台Android6.0的原生Gallery2应用, 网上已经有很多类似的技术文章了,步骤都差不多, 但是MTK在google原生的Gal ...
- 12 编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行
编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行 作者 将狼才鲸 创建日期 2022-11-26 Gitee源码和工程地址:才鲸嵌入式 / 嵌入式QEMU教程 ...
- 在Eclipse中进行HotSpot的源码调试--转
原文地址:http://www.linuxidc.com/Linux/2015-05/117250.htm 在阅读OpenJDK源码的过程中,经常需要运行.调试程序来帮助理解.我们现在已经可以编译出一 ...
- android eclipse关联源码,以及源码(代码)以及jar查看软件
1.eclipse关联源码 步骤一:自已百度下载相应版本的源码,我这里是4.2也就是API=17的版本. 步骤二:找到你安装sdk的目录, G:\Program Files\adt-bundle-wi ...
- 最新WordPress微信小程序社区论坛源码多端应用
WordPress多端应用 WordPress作为后端生成多端小程序.快应用及APP,可用于资讯.新闻.博客.企业官网等 后端 使用开源博客建站系统wordpress和微慕小程序开源版插件 前端使用u ...
- 最新仿悬赏猫任务平台完整源码下载+可封装APP
正文: 最新仿悬赏猫任务平台完整源码下载+可封装APP,这程序是新UI的,前端UI样式没得说,很好看的. 服务器搭建环境:Linux+Centos7.0以上+宝塔,如果你是虚拟主机的话,那是无法搭建的 ...
- NanoPi NEO Air使用七:获取并编译U-boot和Linux的源码
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- 各类最新Asp .Net Core 项目和示例源码
1.网站地址:http://www.freeboygirl.com 2.网站Asp .Net Core 资料 http://www.freeboygirl.com/blog/tag/asp%20net ...
最新文章
- redis怎么不让存byte_redis用bitfield存储的问题
- hibernate 集合类(Collections)映射
- POJ 1753 Flip Game DFS枚举
- html mvc 分页 保存,Asp.net Mvc3 加载cshtml文件自定义分页+ 查询
- 基于Asp.Net Core MVC和AdminLTE的响应式管理后台之侧边栏处理
- 前端实战:仿写小米官网第一天
- mysql 的一些操作
- 我的Android进阶之旅------gt;Android嵌入图像InsetDrawable的使用方法
- python颜色参数_python matplotlib:plt.scatter() 大小和颜色参数详解
- “由于应用程序配置不正确,应用程序未启动。重新安装应用程序可能会纠正这个问题。”解决思路
- Windows 常用快捷键 打开cmd DOS命令
- win10系统 你需要权限来执行此操作 System32
- ERP是什么管理系统?
- Fresher玩深沉
- Python学习之路5☞文件处理
- 纸质文档转成电子档,30秒即可快速搞定(亲测有效)!
- 服务器输出音频文件,云服务器音频输出
- Android事件分发简单介绍
- 常用JS效果 需要时更新。。。
- SpringBoot2.x 监听器详解
热门文章
- 由浅到深理解ROS(3)-命名空间
- WinXP下替代IIS的新思路
- REVERSE-PRACTICE-BUUCTF-4
- 【Python学习】 简单语法与常见错误(持续更新)
- 【CodeForces - 731C】Socks(并查集,思维)
- 【HDU - 5452】Minimum Cut(树形dp 或 最近公共祖先lca+树上差分,转化tricks,思维)
- oracle dump enq hw,经典故障分析 - ASSM引发的索引争用与 enq HW -contentio
- js和php能生成一样的随机数_JavaScript_JS生成某个范围的随机数【四种情况详解】,前言:
JS没有现成的函数,能 - phpStudy...
- php向下滑动,js如何判断鼠标滚轮是向下还是向上滚动
- 元胞计算机系统,元胞自动机的应用