ffmpeg裁剪编译,按需编译,优化代码

FFmpeg可以支持模块的裁剪编译,通常我们会按默认的方式进行编译,把常用的功能模块全部编译到程序中,但是应用到嵌入式系统中,或者存储空间有限制的环境,就需要对FFmpeg进行按需编译。

默认编译

我们可以看一下通常的编译的ffmpeg文件大小,32MB (不同环境和编译选项不一样)

ffmpeg version 4.2.2 Copyright © 2000-2019 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --prefix=…/local --env=‘PKG_CONFIG_PATH=…/local/lib/pkgconfig’ --pkg-config-flags=–static --extra-ldexeflags=-static --disable-doc --disable-libxcb --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --enable-libfreetype --enable-libfdk-aac --enable-libmp3lame --enable-libwebp --enable-libx265 --enable-libvmaf --extra-libs=’-lpthread -lm -lstdc++’ --extra-cflags=-I…/local/include --extra-ldflags=-L…/local/lib

gcc静态编译strip去皮后的size为32M:
-rwxr-xr-x 1 root root 32M Jan 29 14:14 ffmpeg

裁剪编译

./configure --prefix=…/local --env=“PKG_CONFIG_PATH=…/local/lib/pkgconfig” --pkg-config-flags=–static --extra-ldexeflags="-static" --disable-doc --disable-libxcb --disable-filters --disable-decoders --disable-encoders --disable-hwaccels --disable-muxers --disable-demuxers --disable-parsers --disable-bsfs --disable-protocols --disable-indevs --disable-outdevs --disable-devices --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --enable-libfdk-aac --enable-encoder=libx264 --enable-decoder=h264 --enable-muxer=mp4 --enable-demuxer=mov --enable-demuxer=mpegts --enable-protocol=file --extra-libs="-lpthread -lm -lstdc++" --extra-cflags="-I…/local/include" --extra-ldflags="-L…/local/lib"

编译后的文件大小,6.9MB:
-rwxr-xr-x 1 root root 6.9M Jan 30 04:49 ffmpeg

最简编译

./configure --prefix=…/local --env=“PKG_CONFIG_PATH=…/local/lib/pkgconfig” --pkg-config-flags=–static --extra-ldexeflags="-static" --disable-doc --disable-libxcb --disable-filters --disable-decoders --disable-encoders --disable-hwaccels --disable-muxers --disable-demuxers --disable-parsers --disable-bsfs --disable-protocols --disable-indevs --disable-outdevs --disable-devices --enable-gpl --enable-version3 --enable-nonfree --extra-libs="-lpthread -lm -lstdc++" --extra-cflags="-I…/local/include" --extra-ldflags="-L…/local/lib"

编译后的文件大小 3.2MB:
-rwxr-xr-x 1 root root 3.2M Jan 30 04:56 ffmpeg

如果生产环境对文件的大小敏感,可以尝试进行按需编译来减小ffmpeg程序的文件大小,如果对存储文件不敏感,建议还是把默认相关的模块都编译到内部。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值