ffmpeg ./configure参数说明


Standard options: 基本选项参数
--help                   显示此帮助信息|print this message
--log[=FILE|yes|no]      记录测试并输出到config.err文件|log tests and output to FILE [config.err]
--prefix=PREFIX          安装程序到指定目录(默认/usr/local)|install in PREFIX [/usr/local]
--libdir=DIR             安装库到指定目录(默认prefix/lib)|install libs in DIR [PREFIX/lib]
--shlibdir=DIR           指定共享库路径(默认prefix/lib)|install shared libs in DIR [PREFIX/lib]
--incdir=DIR             指定includes路径(默认prefix/include/ffmpeg)|install includes in DIR[PREFIX/include/ffmpeg]
--mandir=DIR             指定man page路径(默认prefix/man)install man page in DIR [PREFIX/man]
--enable-mp3lame         启用mp3编码libmp3lame(默认关闭)enable MP3 encoding via libmp3lame[default=no]
--enable-libogg          启用ogg支持libogg(默认关闭)enable Ogg support via libogg [default=no]
--enable-vorbis          启用Vorbis支持libvorbis(默认关闭)enable Vorbis support via libvorbis [default=no]
--enable-faad            启用faad支持libfaad(默认关闭)enable FAAD support via libfaad [default=no]
--enable-faadbin         启用faad运行时链接支持(默认关闭)build FAAD support with runtime linking[default=no]
--enable-faac            启用faac支持libfaac(默认关闭)enable FAAC support via libfaac [default=no]
--enable-libgsm          启用GSM支持libgsm(默认关闭)enable GSM support via libgsm [default=no]
--enable-xvid            启用xvid支持xvidcore(默认关闭)enable XviD support via xvidcore [default=no]
--enable-x264            启用H.264编码(默认关闭)enable H.264 encoding via x264 [default=no]
--enable-mingw32         启用MinGW本地/交叉win环境编译|enable MinGW native/cross Windows compile
--enable-mingwce         启用MinGW本地/交叉winCE环境编译enable MinGW native/cross WinCE compile
--enable-a52             启用A52支持(默认关闭)enable GPLed A52 support [default=no]
--enable-a52bin          启用运行时打开liba52.so.0(默认关闭)open liba52.so.0 at runtime [default=no]
--enable-dts             启用DTS支持(默认关闭)enable GPLed DTS support [default=no]
--enable-pp              启用后加工支持(默认关闭)enable GPLed postprocessing support [default=no]
--enable-static          构建静态库(默认启用)build static libraries [default=yes]
--disable-static         禁止构建静态库(默认关闭)do not build static libraries [default=no]
--enable-shared          构建共享库(默认关闭)build shared libraries [default=no]
--disable-shared         禁止构建共享库(默认启用)do not build shared libraries [default=yes]
--enable-amr_nb          启用amr_nb float音频编解码器|enable amr_nb float audio codec
--enable-amr_nb-fixed    启用fixed amr_nb codec | use fixed point for amr-nb codec
--enable-amr_wb          启用amr_wb float音频编解码器|enable amr_wb float audio codec
--enable-amr_if2         启用amr_wb IF2音频编解码器|enable amr_wb IF2 audio codec
--enable-sunmlib         启用Sun medialib(默认关闭) | use Sun medialib [default=no]
--enable-pthreads        启用pthreads(多线程)(默认关闭)use pthreads [default=no]
--enable-dc1394          启用libdc1394、libraw1394抓取IIDC-1394(默认关闭)enable IIDC-1394 grabbing using libdc1394 and libraw1394 [default=no]
--enable-swscaler        启用计数器支持?(默认关闭)software scaler support [default=no]
--enable-avisynth        允许读取AVISynth脚本本件(默认关闭)allow reading AVISynth script files [default=no]
--enable-gpl             允许使用GPL(默认关闭)allow use of GPL code, the resulting libav* and ffmpeg will be under GPL [default=no]

Advanced options (experts only): 高级选项参数(供专业人员使用)
--source-path=PATH       源码的路径(当前为/root/flv/ffmpeg)| path to source code [/root/flv/ffmpeg]
--cross-prefix=PREFIX    为编译工具指定路径 | use PREFIX for compilation tools []
--cross-compile          假定使用了交叉编译 | assume a cross-compiler is used
--cc=CC                  指定使用何种C编译器(默认gcc)use C compiler CC [gcc]
--make=MAKE              使用特定的make | use specified make [make]
--extra-cflags=ECFLAGS   添加ECFLAGS到CFLAGS | add ECFLAGS to CFLAGS []
--extra-ldflags=ELDFLAGS 添加ELDFLAGS到LDFLAGS(默认-Wl,--as-needed)| add ELDFLAGS to LDFLAGS [ -Wl,--as-needed]
--extra-libs=ELIBS       添加ELIBS | add ELIBS []
--build-suffix=SUFFIX    为专用程序添加后缀 | suffix for application specific build []
--arch=ARCH              选择机器架构(默认x86)select architecture [x86]
--cpu=CPU                选用最低的cpu(影响指令的选择,可以在老CPU上出错) | selects the minimum cpu required (affects instruction selection, may crash on older CPUs)
--powerpc-perf-enable    启用PPC上面的性能报告(需要启用PMC)enable performance report on PPC
                           (requires enabling PMC)
--disable-mmx            禁用MMX | disable MMX usage
--disable-armv5te        禁用armv5te | disable armv5te usage
--disable-iwmmxt         禁用iwmmxt | disable iwmmxt usage
--disable-altivec        禁用AltiVec | disable AltiVec usage
--disable-audio-oss      禁用OSS音频支持(默认启用)disable OSS audio support [default=no]
--disable-audio-beos     禁用BeOS音频支持(默认启用)disable BeOS audio support [default=no]
--disable-v4l            禁用video4linux提取(默认启用)disable video4linux grabbing [default=no]
--disable-v4l2           禁用video4linux2提取(默认启用)disable video4linux2 grabbing [default=no]
--disable-bktr           禁用bktr视频提取(默认启用)disable bktr video grabbing [default=no]
--disable-dv1394         禁用DV1394提取(默认启用)disable DV1394 grabbing [default=no]
--disable-network        禁用网络支持(默认支持)disable network support [default=no]
--disable-ipv6           禁用ipv6支持(默认支持)disable ipv6 support [default=no]
--disable-zlib           禁用zlib(默认支持)disable zlib [default=no]
--disable-simple_idct    禁用simple IDCT例程(默认启用)disable simple IDCT routines [default=no]
--disable-vhook          禁用video hooking支持 | disable video hooking support
--enable-gprof           enable profiling with gprof [no]
--disable-debug          禁用调试符号 | disable debugging symbols
--disable-opts           禁用编译器最优化 | disable compiler optimizations
--disable-mpegaudio-hp   启用更快的解码MPEG音频(但精确度较低)(默认禁用)faster (but less accurate) MPEG audio decoding [default=no]
--disable-protocols      禁用 I/O 协议支持(默认启用)disable I/O protocols support [default=no]
--disable-ffserver       禁用生成ffserver | disable ffserver build
--disable-ffplay         禁用生成ffplay | disable ffplay build
--enable-small           启用优化文件尺寸大小(牺牲速度)optimize for size instead of speed
--enable-memalign-hack   启用模拟内存排列,由内存调试器干涉? | emulate memalign, interferes with memory debuggers
--disable-strip          禁用剥离可执行程序和共享库 | disable stripping of executables and shared libraries
--disable-encoder=NAME   禁用XX编码器 | disables encoder NAME
--enable-encoder=NAME    启用XX编码器 | enables encoder NAME
--disable-decoder=NAME   禁用XX解码器 | disables decoder NAME
--enable-decoder=NAME    启用XX解码器 | enables decoder NAME
--disable-encoders       禁用所有编码器 | disables all encoders
--disable-decoders       禁用所有解码器 | disables all decoders
--disable-muxer=NAME     禁用XX混音器 | disables muxer NAME
--enable-muxer=NAME      启用XX混音器 | enables muxer NAME
--disable-muxers         禁用所有混音器 | disables all muxers
--disable-demuxer=NAME   禁用XX解轨器 | disables demuxer NAME
--enable-demuxer=NAME    启用XX解轨器 | enables demuxer NAME
--disable-demuxers       禁用所有解轨器 | disables all demuxers
--enable-parser=NAME     启用XX剖析器 | enables parser NAME
--disable-parser=NAME    禁用XX剖析器 | disables parser NAME
--disable-parsers        禁用所有剖析器 | disables all parsers

--enable-memalign-hack是指编译时,使用内存对齐方式,这样以便编译时用mmx或者sse指令对代码进行优化。 



./configure --enable-memalign-hack  \
--arch=x86 --target-os=mingw32 \
--cross-prefix=i686-w64-mingw32- \
--pkg-config=pkg-config \
--enable-static --enable-shared \
--enable-gpl --enable-nonfree


PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree
PATH="$HOME/bin:$PATH" make


./configure --enable-version3 \
--enable-libvorbis \
--enable-libx264 \
--enable-libxvid \
--disable-ffplay \
--enable-shared \
--enable-libmp3lame \
--enable-gpl \
--enable-pthreads \
--enable-postproc \
--enable-x11grab \
--enable-libgsm  \
--enable-swscale \
--enable-nonfree \
--enable-avfilter \
--enable-libass



./configure --disable-static --enable-shared --enable-version3  \
--enable-gpl --enable-nonfree --disable-pthreads --enable-w32threads  \
 --enable-runtime-cpudetect --enable-memalign-hack --enable-libfaac   \
--enable-libmp3lame --enable-libopenjpeg --enable-libspeex --enable-libtheora  \
--enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib  \
--enable-cross-compile --target-os=mingw32 --arch=x86  \
--prefix=/data/opensdk/ffmpeg --cross-prefix=x86_64-w64-mingw32-  \
--extra-cflags="-I/data/opensdk/target/include"  \
--extra-ldflags="-L/data/opensdk/target/lib"


./configure --cross-prefix=arm-none-linux-gnueabi- --enable-cross-compile  /
--target-os=linux --cc=arm-none-linux-gnueabi-gcc --arch=arm --prefix=/usr/local/ffmpeg  /
--enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg  / 
--disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads --disable-armv5te  /
--disable-armv6 --disable-armv6t2 --disable-yasm --disable-stripping  / 
--enable-libx264 --extra-cflags=-I/usr/local/include  / 
--extra-ldflags=-L/usr/local/lib --extra-libs=-ldl


--enable-static与--enable-shared

--enable-static:生成静态链接库

--enable-shared:生成动态链接库


静态库

       在编译过程中,就将静态库中的代码载入程序,由此生成出的可执行程序在运行中不再需要静态库,但因为库中的程序代码被复制进目标程序中,因此生成的程序体积会比较大。

       Linux中,静态库的命名规则通常为lib*.a

优点

·因为将库中代码加载进**程序中,因此运行时省去动态链接加载的过程,带来一定的性能提升

       ·程序运行可以不依赖于库文件,即便库文件被删除也可以照样运行

缺点

·生成的可执行程序体积较大

·使用静态链接库无法在内存中共享,会造成一定的浪费


动态库

       又称为共享库,即编译时只对库进行简单的引用而不载入程序,在程序运行时才将动态库中的代码载入内存使用,因此使用动态库的程序在运行时需要其相关的动态库都存在。

       linux中,动态库的命名通常是*.so


优点

·生成的可执行程序体积小

       ·动态库在内存只加载一次,同时可为多个进程共享,由此会提高一定的效率

缺点

·依赖库文件,不方便移植


测试数据,以下使用mysql5.1.57版本

1、 开启--enable-static 

./configure--prefix=/test/static --enable-shared=no --enable-static=yes

编译大小:368M

安装大小:596M

 

2、 开启--enable-shared

./configure--prefix=/test/static --enable-shared=yes --enable-static=no

编译大小:352M

安装大小:566M

3、 同时开启--enable-static和--enable-shared

./configure--prefix=/test/static --enable-static --enable-shared

编译大小:387M

安装大小:617M

--enable-assembler

       --enable-assembler选项的功能是使用一些字符函数的汇编版本。那么它提升效率的原理也就不难理解了:汇编语言面向机器,直接使用CPU指令进行操作,代码简短且占用内存少。对于字符处理较多的业务能带来显著的性能提升。




评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值