调试ffmpeg与Makefile中的STRIP

 

最近在调试ffmpeg的时候发现没有符号表,google了一下发现ffmpeg给出了一个ffmpeg_g的执行文件专用来调试。也可以修改Makefile文件,把这一行注释掉:

 

#       $(STRIP) $@

 

这样就可以直接调试ffmpeg了。STRIP的含义是当最终的可执行程序不需要包含调试信息时,可使用“strip”去掉可执行程序中的调试符号以减小最终的程序大小。(ref)

 

看来我这个菜鸟对于Makefile的知识还需要补充。

裁剪FFmpeg的方法主要有两种,一种是手动选择需要的编解码器、滤镜等组件,另一种是通过修改configure文件来选择需要的组件。这里介绍第二种方法。 首先,你需要下载FFmpeg源码,并解压缩。然后进入源码目录,执行以下命令: ``` ./configure --disable-static --enable-shared --disable-doc --disable-ffplay --disable-ffserver --disable-ffprobe --disable-avdevice --disable-postproc --disable-network --disable-everything --enable-protocol=file --enable-demuxer=avi,mov --enable-decoder=h264,mpeg4 --enable-parser=h264,mpeg4video --enable-bsf=h264_mp4toannexb,aac_adtstoasc --enable-encoder=libx264,libmp3lame --enable-muxer=mp4 --enable-filter=scale ``` 其中,各个选项的含义如下: - `--disable-static`:禁用静态库。 - `--enable-shared`:启用动态库。 - `--disable-doc`:禁用文档。 - `--disable-ffplay`:禁用播放器。 - `--disable-ffserver`:禁用服务器。 - `--disable-ffprobe`:禁用探测器。 - `--disable-avdevice`:禁用设备。 - `--disable-postproc`:禁用后处理。 - `--disable-network`:禁用网络。 - `--disable-everything`:禁用所有组件。 - `--enable-protocol=file`:启用文件协议。 - `--enable-demuxer=avi,mov`:启用AVI和MOV解封装器。 - `--enable-decoder=h264,mpeg4`:启用H.264和MPEG-4解码器。 - `--enable-parser=h264,mpeg4video`:启用H.264和MPEG-4视频解析器。 - `--enable-bsf=h264_mp4toannexb,aac_adtstoasc`:启用H.264 MP4到Annex B和AAC ADTS到ASC比特流过滤器。 - `--enable-encoder=libx264,libmp3lame`:启用x264和MP3编码器。 - `--enable-muxer=mp4`:启用MP4封装器。 - `--enable-filter=scale`:启用缩放过滤器。 根据你的需求,可以添加或删除选项。执行configure命令后,会生成Makefile文件。然后执行make命令,即可编译出libavformat.so、libavcodec.so、libavutil.so这三个库。编译完成后,你可以使用`strip`命令来缩减库的大小,例如: ``` strip -s libavformat.so ``` 这会去除库中的符号表和调试信息,从而减小库的大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值