博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ffmpeg裁剪编译,按需编译,优化代码
阅读量:4201 次
发布时间:2019-05-26

本文共 2222 字,大约阅读时间需要 7 分钟。

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程序的文件大小,如果对存储文件不敏感,建议还是把默认相关的模块都编译到内部。

转载地址:http://qmfli.baihongyu.com/

你可能感兴趣的文章
[转]在ASP.NET 2.0中操作数据::创建一个数据访问层
查看>>
Linux命令之chmod详解
查看>>
【java小程序实战】小程序注销功能实现
查看>>
Java中子类能否继承父类的私有属性和方法
查看>>
JVM内存模型详解
查看>>
(二)Git--工作区和暂存区、管理修改与撤销
查看>>
(七)Git--自定义Git
查看>>
(五)Git--分支管理
查看>>
(四)Git--远程仓库
查看>>
(六) Git--标签管理
查看>>
java中继承,子类是否继承父类的构造函数
查看>>
什么是Spring Cloud ?
查看>>
pyqt实现界面化编程
查看>>
qt写DLL文件并调用和出现的问题分析
查看>>
工厂模式(Factory)-设计模式(一)
查看>>
建造者模式(Builder)-设计模式(三)
查看>>
初学Java必备基础知识,编程领域你需要掌握的关键点!
查看>>
阿里五年Java程序员的总结,献给还在迷茫中的你!
查看>>
程序员身上有异味,同事为什么都不会直接告诉他?
查看>>
Java、C、C+ +、PHP、Python分别用来开发什么?一篇文章告诉你!
查看>>