ubuntu下编译ffmpeg 并单步调试

原创地址:http://jjf19850615.blog.163.com/blog/static/3568814720130144197312/


首先上http://ffmpeg.org/download.html网站能下载到最新的ffmpeg源码和win32下的相应的编译好的库,win32下的编译过程在这个网站中也能找到。 注意在Ubuntu下如果执行命令make install失败,则使用sudo make install使用root 权限来执行,因为有些目录普通用户不能创建, 下面步入正题:
参考:
http://hi.baidu.com/davidgabriel/item/36bd96cc2d9a8ed9ee183b98
http://windesting.blog.sohu.com/227273829.html
http://www.linuxidc.com/Linux/2010-03/24737.htm
1.下载好ffmpeg最新的源码,存放到ubuntu中自己建立的work目录中;
2. 在命令行进入ffmpeg目录,然后输入 sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev zlib1g-dev 来安装需要的一些部分相应的库。
3.在命令行进入ffmpeg目录,然后输入: ./configure --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libx264 --enable-libopencore-amrnb --enable-libgsm --enable-libfaac --enable-libopenjpeg --enable-librtmp --enable-gpl --enable-version3 --enable-nonfree --enable-shared
会提示好多东西在第2步没有安装,这个时候需要安装,( 在apt-get install 后写几个前缀,这样按两下Tab就能
测试一下Ubuntu是否能够找到这些解码库的包 ),一般-dev后缀的是要安装的,另外 libgsm 我是通过 sudo apt-get install libgsm1-dev来安装的。
4.都安装完成后,make
5. sudo make install
完成,在/usr/local/bin下能看到生成的四个可执行文件: ubuntu下编译ffmpeg - jjf19850615 - 博客
这个时候拷贝一个视频文件进去用ffmpeg -i input output来测试,提示

ffmpeg :error loading shared libavdevice.so.54

解决:
To make ffmpeg binary look in this directory for linked libraries, edit /etc/ld.so.conf and add this path:
Code:
include ld.so.conf.d/*.conf
/usr/local/lib
then excute ldconfig to take effect.

 这样再运行上面的命令就能得到解码后的YUV文件了。初步测试成功,编译成功。

生成带有调试信息的文件:
1.make clean,将之前的全部编译生成的东西都删除掉;
2.输入如下配置,红色是和上面编译添加的一些选项,为了生成调试信息,并且不使用汇编 ./configure --enable-shared --enable-debug --disable-optimizations --disable-yasm --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libx264 --enable-libopencore-amrnb --enable-libgsm --enable-libfaac --enable-libopenjpeg --enable-librtmp --enable-gpl --enable-version3 --enable-nonfree --disable-asm --enable-shared
3.make;
4. sudo make install这样就生成了带有调试信息的ffmpeg等文件。
调试参考:http://blog.chinaunix.net/uid-26009923-id-3454613.html
终端输入:readelf -S ./ffmpeg_g
ubuntu下编译ffmpeg 并单步调试 - jjf19850615 - 博客
可以看到有调试信息。
 5.GDB进行调试:http://www.cnblogs.com/rosesmall/archive/2012/04/10/2440514.html
例如一个程序名为prog 参数为 -l a -C abc
则,运行gcc/g++ -g  prog.c/cpp -o prog
就可以用gdb调试程序prog
#gdb prog
进入gdb调试界面
输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:
set args -l a -C abc
回车后输入
r
即可开


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值