ubuntu环境下GDB调试FFMPEG+X264+MP3遇到的问题(持续更新)
2012-12-14 13:13
435 查看
自己遇到的问题,后续会继续更新,也希望各位把遇到的问题和解决方法列在后面
1、若要调试FFMPEG,在编译时应当在configure时,加上
--enable-debug
--disable-asm
注:在调试x264时就应该加上这两个配置选项,方能调试
2、make install 会执行strip命令,strip命令就会去掉FFMPEG的symbols(符号表),这就相当于--disable-debug这个默认选项install了,怎么避免strip命令将先前的配置给去掉呢?
在configure时加上 --disable-stripping选项
看原帖讨论地址:用gdb调试ffmpeg出现“ no debuging symbols find”错误的原因讨论:
http://bbs.chinavideo.org/archiver/?tid-54.html
3、在调试FFMPEG时,应当调试ffmpeg_g,而不是ffmpeg;为什么呢
4、在调试时,无法进入某个函数进行单步调试,如何解决?
应该把config.mak文件中的 -O都去掉;
更有效的方式是在configure时加上--disable-stripping
5、在调试时,没有按照函数顺序的执行,怎么办?
configure时要关闭优化,即加上 --disable-optimize
6、在使用ffplay播放生成h264格式的视频时,播放速度会加快,解决方式:
不要使用FFMPEG转码生成纯h264格式的视频,要使用一种容器包含h264视频,即生成一种音视频流格式
即不要生成纯粹的h264码流,而是生成诸如mkv等格式的文件
7、我在x264中添加自己的函数时,x264编译成功,并且能够生成可以播放的h264码流,但是在使用ffmpeg调用x264时,出现错误:
ERROR:libx264 not found
查看config.log文件:
/usr/local/lib/libx264.so:undefined reference to
'get*'
collect2:ld returned 1 exit status
其中get*是我自己添加的函数
出现错误的原因:因为libx264中包含的文件为:
default SRCS
= common/mc.c common/predict.c common/pixel.c common/macroblock.c \
common/frame.c common/dct.c common/cpu.c common/cabac.c \
common/common.c common/mdate.c common/set.c \
common/quant.c common/vlc.c \
encoder/analyse.c encoder/me.c encoder/ratecontrol.c \
encoder/set.c encoder/macroblock.c encoder/cabac.c \
encoder/cavlc.c encoder/encoder.c
而我添加的函数是定义在x264.c文件中,其中analyse.c文件调用了这个函数,但是,libx264并没有将x264.c包含进去,所以ffmpeg调用libx264时,会在编译时出现找不到函数定义的错误,即此函数为undefined reference
开始我想着,可以再Makefile文件中修改这个SRCS,将x264.c包含进去,但是我想的太简单了,只是修改这一处根本就不对,修改的结果就是引来了更多的undefined
reference、
解决办法就是:将自己编写的函数添加到libx264包含的文件中,或者在ffmpeg与x264的接口处修改,这样就可以修改ffmpeg了,而不用修改x264,怎样修改,看个人喜好了
注:这一类错误大概就是由于你想调用的函数没有包含的你所调用的库函数里面
8、在virtualbox上编译FFMPEG:出现
failed
to create symbolic link `libavutil.so': Read-only file system
原来是因为我的configure选项中由--enable-shared,因此去掉此选项即可:
The
VirtualBox shared folder filesystem doesn't allow symlinks, unfortunately.
转载请注明:
/article/1338251.html
1、若要调试FFMPEG,在编译时应当在configure时,加上
--enable-debug
--disable-asm
注:在调试x264时就应该加上这两个配置选项,方能调试
2、make install 会执行strip命令,strip命令就会去掉FFMPEG的symbols(符号表),这就相当于--disable-debug这个默认选项install了,怎么避免strip命令将先前的配置给去掉呢?
在configure时加上 --disable-stripping选项
看原帖讨论地址:用gdb调试ffmpeg出现“ no debuging symbols find”错误的原因讨论:
http://bbs.chinavideo.org/archiver/?tid-54.html
3、在调试FFMPEG时,应当调试ffmpeg_g,而不是ffmpeg;为什么呢
4、在调试时,无法进入某个函数进行单步调试,如何解决?
应该把config.mak文件中的 -O都去掉;
更有效的方式是在configure时加上--disable-stripping
5、在调试时,没有按照函数顺序的执行,怎么办?
configure时要关闭优化,即加上 --disable-optimize
6、在使用ffplay播放生成h264格式的视频时,播放速度会加快,解决方式:
不要使用FFMPEG转码生成纯h264格式的视频,要使用一种容器包含h264视频,即生成一种音视频流格式
即不要生成纯粹的h264码流,而是生成诸如mkv等格式的文件
7、我在x264中添加自己的函数时,x264编译成功,并且能够生成可以播放的h264码流,但是在使用ffmpeg调用x264时,出现错误:
ERROR:libx264 not found
查看config.log文件:
/usr/local/lib/libx264.so:undefined reference to
'get*'
collect2:ld returned 1 exit status
其中get*是我自己添加的函数
出现错误的原因:因为libx264中包含的文件为:
default SRCS
= common/mc.c common/predict.c common/pixel.c common/macroblock.c \
common/frame.c common/dct.c common/cpu.c common/cabac.c \
common/common.c common/mdate.c common/set.c \
common/quant.c common/vlc.c \
encoder/analyse.c encoder/me.c encoder/ratecontrol.c \
encoder/set.c encoder/macroblock.c encoder/cabac.c \
encoder/cavlc.c encoder/encoder.c
而我添加的函数是定义在x264.c文件中,其中analyse.c文件调用了这个函数,但是,libx264并没有将x264.c包含进去,所以ffmpeg调用libx264时,会在编译时出现找不到函数定义的错误,即此函数为undefined reference
开始我想着,可以再Makefile文件中修改这个SRCS,将x264.c包含进去,但是我想的太简单了,只是修改这一处根本就不对,修改的结果就是引来了更多的undefined
reference、
解决办法就是:将自己编写的函数添加到libx264包含的文件中,或者在ffmpeg与x264的接口处修改,这样就可以修改ffmpeg了,而不用修改x264,怎样修改,看个人喜好了
注:这一类错误大概就是由于你想调用的函数没有包含的你所调用的库函数里面
8、在virtualbox上编译FFMPEG:出现
failed
to create symbolic link `libavutil.so': Read-only file system
原来是因为我的configure选项中由--enable-shared,因此去掉此选项即可:
The
VirtualBox shared folder filesystem doesn't allow symlinks, unfortunately.
转载请注明:
/article/1338251.html
相关文章推荐
- ubuntu环境下GDB调试FFMPEG+X264+MP3遇到的问题(持续更新)
- <持续更新>ubuntu下开发环境常见问题解决
- Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题解决方法(持续更新)
- Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题解决方法(持续更新)
- 调试STM32过程中遇到的问题总结(持续更新)--KEIL4+C语言
- Ubuntu 使用中遇到的小问题(持续更新)
- Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题(持续更新)
- 使用Ubuntu遇到的问题以及解决方法(持续更新)
- OpenCV学习笔记(4)——VS环境下调试遇到的问题整理(不断更新……)
- 刚接触ubuntu,遇到的小问题总结一下(持续更新)
- 钉钉环境下H5开发微应用遇到的问题和BUG(持续更新)
- ubuntu搭建安卓开发环境遇到的问题
- Android开发jni遇到的一些问题,持续更新
- Android Stock Browser Web App开发当中遇到的问题(持续更新)
- flaskweb遇到的问题总结(持续更新)
- hadoop2.0 遇到的问题 (持续更新)
- Git使用总结(遇到问题,持续更新)
- Ubuntu安装显卡驱动常见问题(持续更新~)
- 生产环境使用elasticsearch遇到的一些问题以及解决方法(不断更新)