依赖
安装x264和yasm
安装 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
FFmpeg编译中增加
--enable-debug=3 \
--disable-optimizations \
--disable-asm \
--disable-stripping \
GDB调试
有两种方式可以进入GDB,一种就是直接在命令行上输入gdb,然后再在gdb中用file命令加载要调试的程序;另一种就是,直接在命令行上使用:gdb 程序名
gdb ffmpeg_g
//调试时应当是ffmpeg_g,它带有调试符号;而不是ffmpeg
file ffmpeg_g
//file <文件名>: 加载被调试的可执行程序文件
set args -h filter=transform
//用 "set args 参数值1 参数值2...."来设置输入参数
set args -i input.mp4 -vf transform=input_stereo_format=MONO:w_subdivisons=4:h_subdivisons=4:max_cube_edge_length=512 -qscale 20 output.mp4
//以上参数是ffmpeg加入facebook/transform代码的设置参数,自己调试时改成自己想要的参数就好了,ffmpeg常用参数一览表
b transform_pos
//b <函数名称> : b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。
b 450
//b <行号>
r
//Run的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。
p face
//p <变量名称> : Print的简写,显示指定变量(临时变量或全局变量)的值。
c
//Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。
i b
//查看断点信息(i-->info,b-->break)
d
<断点标号> //删除某个断点
网友评论