ffmpeg调试相关知识点

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文件:

undefined to
'get*'
collect2:ld returned 1 exit status

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

The
VirtualBox shared folder filesystem doesn't allow symlinks, unfortunately.

上一篇:AIX系统的环境变量设置


下一篇:yum一键安装企业级lamp服务环境-技术流ken