ffmepg在CentOS编译和调试(DEBUG)技巧

1.官网下载最新的ffmpeg源码
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

2.官网下载x264,并编译x264

cd ffmpeg
git clone git://git.videolan.org/x264
cd x264
./configure --enable-static

如果是32位的系统,需要增加参数”-march=i686″,否则LD过程可能报错:

CFLAGS="-march=i686" ./configure --enable-static
 --disable-opencl \
 --disable-avs \
 --disable-cli \
 --disable-ffms \
 --disable-gpac \
 --disable-lavf \
 --disable-swscale \
 --disable-asm
make
make install

如果要增加其他新的库,比方说mp3,amr等等,可以我前面推荐的官方编译文档

3.配置ffmpeg,并支持DEBUG

./configure --enable-debug=1 --disable-yasm  --disable-static --enable-shared \
--enable-gpl --enable-version3 --disable-w32threads  --enable-bzlib \
--enable-libfreetype   --enable-libx264 --enable-zlib

然后修改config.mak 文件:
vi config.mak
a. 修改CFLAGS= ….这一行,把其中的-g1参数替换为-g, 该行的-O3参数替换为-O
b. STRIP=strip这一行替换为STRIP=echo
c. 替换其他行的-O3选项为-g

make
make install

4.执行ffmepg时,会遇到报错,修改以下系统配置
vi /etc/ld.so.conf
文件尾部加入新的一行:
/usr/local/lib
保存后,执行命令:
ldconfig

5.可以用gdb开始调试
gdb ffmpeg
设置一下av_read_frame, av_write_frame, avcodec_open2等关键函数的断点
>>break utils.c:1486
>>break mux.c:732
>>break h264_mp4toannexb_bsf.c:73
>>break utils.c:788
开始正式执行命令,带上命令参数
>>run -i test.mp4 -vbsf h264_mp4toannexb -an test.h264-i test.mp4 -vbsf h264_mp4toannexb -an test.h264

我的这条ffmpeg命令是把一个mp4文件中的h264视频提取保存为h264 ES流文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑点燃希望

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值