最新ffmpeg编译和用eclipse进行源码调试

2023-05-16

     最近由于项目需要,必须修改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

clip_image002

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

clip_image004

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

clip_image006

然后点OK->Finish

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

clip_image008

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

clip_image010

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

关于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"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最新ffmpeg编译和用eclipse进行源码调试 的相关文章

随机推荐

  • 学习科大讯飞的StatQuest机器学习课笔记(2)

    Day2学习笔记07 20 ROC和AUC 1 假设一个逻辑回归曲线可以推测出一个结果的概率 xff0c 然后选取某个概率作为分类的阈值 由于使用不同概率作为分类的阈值会计算出不同的敏感性和特异性 xff0c 因此为了评价哪个概率会得出最佳
  • 学习科大讯飞的StatQuest机器学习课笔记(3)

    Day3学习笔记07 21 最小二乘法 线性回归 用数据拟合一条直线y 61 ax 43 b 1 我们要使观测值与直线之间的距离 残差 的平方最小化 2 通过求导找到它等于0时的点 3 这条直线使平方和达到了最小化 odds 胜负比 和od
  • 七款经典4.2v锂电池充电电路图详解 - 全文

    4 2v锂电池充电电路图 xff08 一 xff09 xff1a 锂电池充电均衡电路 这个均衡电路用的是三个一模一样的并联稳压电路组成的 xff0c 每个电池上并一个 电路原理图如下 xff1a 每个稳压电源都调节到4 2V 均衡的原理是
  • sqlserver删除master数据库中的用户创建的表

    最近在使用SQL Server2019 xff0c 在程序中执行建表语句默认建到了master数据库中 xff0c 使用SSMS SQL Server Management studio 执行以下语句时提示 xff1a 不允许对系统目录进行
  • QLineEdit和QDateTimeEdit等含编辑框使用stylesheet配置背景透明时,鼠标进入离开背景闪烁问题的解决

    在使用QLineEdit和QDateTimeEdit等含编辑框的控件时如果使用stylesheet设置背景透明如下 xff1a QLineEdit background color transparent color white QLine
  • 使用Poco库进行加解密和签名验签

    最近一个朋友让我帮忙找一下使用Poco库进行非对称加密的例子 xff0c 通过百度 xff0c Google找到两个不错的在此总结一下 xff1a Poco开源代码库地址 xff1a https github com pocoproject
  • 走进开源代码(一)

    目录 前言 从哪里开始 xff1f 总结 前言 今天是个既特殊又年轻的节日 双十一 剁手节 xff0c 也算是个有纪念意义的开端吧 xff01 上周参加了系统架构设计师考试 xff0c 论文没有写完 xff0c 虽然这次肯定是过不了了 xf
  • 走进开源代码(二)

    目录 一 下载源代码 xff0c 了解目录结构 二 src目录介绍 总结 上一篇文章写了通过两篇文章大致了解比特币项目的目的和解决问题的策略 xff0c 本节正式走进源代码 xff1b 一 下载源代码 xff0c 了解目录结构 比特币项目的
  • [转]深度剖析闪电网络

    转自 xff1a https new qq com omn 20201108 20201108A04RZW00 html 闪电网络 xff08 Lighting Network xff09 是比特币的二层扩容方案 xff0c 由 Josep
  • 听李天飞《大话西游》有感

    作为一个老程序员搬砖之余喜欢看些传统文化相关的东西 xff0c 去年春节期间由于新冠疫情影响 xff0c 很多培训机构都把免费的网络课程作为力推的上课形式 xff0c 其中也包括学而思 在陪孩子上学而思网校的课程时 xff0c 有个 李天飞
  • 走进开源代码(三)

    由于工作的原因 xff0c 虽然是一名C 43 43 程序员 xff0c 平时工作中还是使用的C 43 43 99 xff0c 而比特币v0 20 1的源码是C 43 43 11写的 xff0c 虽然之前对C 43 43 11也有些了解 x
  • Linux下开发Qt界面程序时命令行传参数的一个坑

    今天在Linux下开发Qt界面程序时发现一个奇怪的问题 xff0c 程序执行如下命令却会打印日志和弹出对话框 test name xxx 代码如下 xff1a include lt QApplication gt include lt QM
  • 树莓派为连接不同Wifi分配固定IP的方法

    由于在家里和外面两种场景下使用树莓派 xff0c 家里的wifi是192 168 3 1 xff0c 在外面我用的我的360随身wifi xff0c 它的IP固定是192 168 253 1 xff08 百度未找到修改它的方法 xff09
  • ajax-Access-Control-Allow-Origin跨域问题解决

    首先 xff0c 在解决之个问题之前 xff0c 我们要弄明白为什么会出现跨域问题 跨域问题是浏览器对于ajax请求的一种安全限制 xff1a 一个页面发起的ajax请求 xff0c 只能是与当前页域名相同的路径 xff0c 这能有效的阻止
  • SSH Config 那些你所知道和不知道的事

    SSH xff08 Secure Shell xff09 是什么 xff1f 是一项创建在应用层和传输层基础上的安全协议 xff0c 为计算机上的 Shell xff08 壳层 xff09 提供安全的传输和使用环境 也是专为远程登录会话和其
  • 在虚拟云主机部署pure-ftpd后,从另一个虚拟云主机连接该ftp服务的一些问题

    问题描述 xff1a 最近的一个项目需要在公网搭建一个ftp服务器 xff0c 同时开发的Java程序需要运行在另一台公网服务器上 xff0c 开始时在本地开发机器上测试 xff0c 连接公网的ftp服务器 xff0c 上传文件都没有问题
  • 树莓派4B安装Ros 2 Foxy踩坑记录

    1 通过树莓派官方提供的写卡工具raspberry pi imager选择Ubuntu 20 04 5 xff08 64 bit xff09 xff0c 因为我打算用一个8G的存储卡安装ros 2 xff0c Ubuntu 22 04的比较
  • 浅谈第三方登录用户表结构设计方案

    国民两大流量入口 xff0c 大家不说也想到了 xff0c 分别是微信和QQ 所以为了方便获取用户来源都对接了微信登录或者QQ登录 xff0c 这一类型的第三方登录入口 今天就以对接微信登录 QQ登录与苹果登录 来说说对第三方用户体系与我方
  • Linux 网络命令

    1 ifconfig查看当前活着的网络接口信息 root 64 localhost ifconfig a 表示显示所有网卡包括没有启动的网卡 root 64 localhost ifconfig ens33 down 关闭网卡 root 6
  • 最新ffmpeg编译和用eclipse进行源码调试

    最近由于项目需要 xff0c 必须修改ffmpeg的源码进行修改才能满足项目的需求 xff0c 但以前我从来没有自己去编译和使用ffmpeg的源代码 xff0c 一直都是用别人编译好了的sdk xff0c 再加上习惯了vs方便的编译环境 x