FFmpeg configure
FFmpeg上一篇写了运行引用大神的额编译脚本的哥哥参数的和linux下面的命令的含义,这里列出函数内configure各个参数的含义。
Configure
Usage:configure [options]
Options: [defaults in brackets after description]
Help options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–help | print this message | 显示帮助文档 |
–list-decoders | show all available decoders | 展示所有的解码器 |
–list-encoders | show all available encoders | 展示所有的编码器 |
–list-hwaccels | show all available hardware accelerators | 展示所有的硬件加速器 |
–list-demuxers | show all available demuxers | 展示所有的解复用器 |
–list-muxers | show all available muxers | 展示所有的复用器 |
–list-parsers | show all available parsers | 展示所有的解析器 |
–list-protocols | show all available protocols | 展示所有的协议 |
–list-bsfs | show all available bitstreamfilters | ?? |
–list-indevs | show all available inputdevices | 展示所有的输入设备 |
–list-outdevs | show all available outputdevices | 展示所有的输出设备 |
–list-filters | show all available filters | 展示所有的过滤器 |
Standard options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–logfile=file | log tests and output to FILE[config.log] | 输出日志 |
–disable-logging | do not log configure debug information | 不记录日志 |
–fatal-warnings | fail if any configure warning is generated | 严重警告 |
–prefix=PREFIX | install in PREFIX[] | 安装目录的前缀 |
–bindir=DIR | install binaries in DIR[PREFIX/bin] | 二进制文件目录 |
–datadir=DIR | install data files in DIR[PREFIX/share/ffmpeg] | ??文件目录 |
–docdir=DIR | install documentation in DIR[PREFIX/share/doc/ffmepg] | 文档目录 |
–libdir=DIR | install libs in DIR[PREFIX/lib] | 库文件目录 |
–shlibdir=DIR | install shared libs in DIR[LIBDIR] | 动态库文件目录 |
–incdir=DIR | install includes in DIR[PREFIX/include] | 头文件目录 |
–mandir=DIR | install man page in DIR[PREFIX/share/man] | 手册目录 |
–pkgconfiguredir=DIR | install pkg-config files in DIR[LIBDIR/pkgconfig] | ?? |
–enable-rpath | use rpath to allow installing libraries in paths not part of the dynamic linker search path use rpath when linking programs [USE WITH CARE] | ?? |
–install-name-dir=DIR | Darwin directory name for installed targets | ?? |
Licensing options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–enable-gpl | allow use of GPL code,the resulting libs and binaries will be under GPL[no] | 允许使用GPL代码,默认不允许 |
–enable-version3 | upgrade (L)GPL to version 3 [no] | 升级GPL到版本3,默认不升级 |
–enable-nonfree | allow use of nonfree code,the resulting libs and binaries will be unredistributable [no] | 允许使用NONFREE模块代码,默认不允许 |
Configuration options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–disable-static | do not build static libraries [no] | 不编译静态库 |
–enable-shared | build shared libraries[no] | 编译动态库 |
–enable-small | optimize for size instead of speed | 优化大小而不是速度 |
–disable-runtime-cpudetect | disable detecting cpu capabilities at runtime(smaller binary) | 不检测CPU能力在运行时可以获得更小的二进制文件 |
–enable-gray | enable full grayscale support(slower color) | ?? |
–disable-swscale-alpha | disable alpha channel support in swscale | ?? |
–disable-all | disable building components,libraries and programs | 不便宜任何组件,库,程序 |
–disable-raise-major | increase major version numbers in sonames[no] | ?? |
Program options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–disable-programs | do not build command line programs | 不编译命令行工具 |
–disable-ffmpeg | disable ffmpeg build | 不编译ffmpeg |
–disable-ffplay | disable ffplay build | 不编译ffplay |
–disable-ffprobe | disable ffprobe build | 不编译ffprobe |
–disable-ffserver | disable ffserver build | 不编译ffserver |
Documentation options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–disable-doc | do not build documentation | 不编译出文档 |
–disable-htmlpages | do not build HTML documentation pages | 不编译出文档 |
–disable-manpages | do not build MAN documentation pages | 不编译出文档 |
–disable-podpages | do not build POD documentation pages | 不编译出文档 |
–disable-txtpages | do not build TXT documentation pages | 不编译出文档 |
这里给出我会用到的八个库的作用:
- libavdevice 设备
- libavcodec 编解码
- libavformat 格式
- libswresample ??
- libswscale ??
- libpostproc ??
- libavfilter 滤镜
- libavresample ??
- libavutil 工具
Component options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–disable-avdevice | disable libavdevice buile | 不编译此库 |
–disable-avcodec | disable libavcodec buile | 不编译此库 |
–disable-avformat | disable libavformat buile | 不编译此库 |
–disable-swresample | disable libswresample buile | 不编译此库 |
–disable-swscale | disable libswscale buile | 不编译此库 |
–disable-postproc | disable libpostproc buile | 不编译此库 |
–disable-avfilter | disable libavfilter buile | 不编译此库 |
–enable-avresample | enable libavresample buile[no] | 编译此库默认不编译 |
–disable-pthreads | disable pthreads [autodetect] | ?? |
–disable-w32threads | disable w32threads [autodetect] | ?? |
–disable-os2threads | disable os2threads [autodetect] | ?? |
–disable-network | disable network support | ?? |
–disable-dct | disable DCT code | ?? |
–disable-dwt | disable DWT dode | ?? |
–disable-error-resilience | disable error resilience | ?? |
–disable-lsp | disable LSP code | ?? |
–disable-lzo | disable LZO code | ?? |
–disable-mdct | disable MDCT code | ?? |
–disable-rdft | disable RDFT code | ?? |
–disable-fft | disable FFT code | ?? |
–disable-faan | disable floating point AAN (I)DCT code | ?? |
–disable-pixelutils | disable pixel utils in libavutil | ?? |
Individual component options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–disable-everything | disable all components listed below | |
–disable-encoder=NAME | disable encoder name | 禁用 |
–enable-encoder=NAME | enable encoder name | 使用 |
–disable-encoders | disable all encoders | 全部禁用 |
–disable-decoder=NAME | disable decoder name | 禁用 |
–enable-decoder=NAME | enable decoder name | 使用 |
–disable-decoders | disable all decoders | 全部禁用 |
–disable-hwaccel=NAME | disable hwaccel name | 禁用 |
–enable-hwaccel=NAME | enable hwaccel name | 使用 |
–disable-hwaccels | disable all hwaccels | 全部禁用 |
–disable-muxer=NAME | disable muxer name | 禁用 |
–enable-muxer=NAME | enable muxer name | 使用 |
–disable-muxers | disable all muxers | 全部禁用 |
–disable-demuxer=NAME | disable demuxer name | 禁用 |
–enable-demuxer=NAME | enable demuxer name | 使用 |
–disable-demuxers | disable all demuxers | 全部禁用 |
–disable-parser=NAME | disable parser name | 禁用 |
–enable-parser=NAME | enable parser name | 使用 |
–disable-parsers | disable all parsers | 全部禁用 |
–disable-bsf=NAME | disable bsf name | 禁用 |
–enable-bsf=NAME | enable bsf name | 使用 |
–disable-bsfs | disable all bsfs | 全部禁用 |
–disable-protocol=NAME | disable protocol name | 禁用 |
–enable-protocol=NAME | enable protocol name | 使用 |
–disable-protocols | disable all protocols | 全部禁用 |
–disable-indev=NAME | disable indev name | 禁用 |
–enable-indev=NAME | enable indev name | 使用 |
–disable-indevs | disable all indevs | 全部禁用 |
–disable-outdev=NAME | disable outdev name | 禁用 |
–enable-outdev=NAME | enable outdev name | 使用 |
–disable-outdevs | disable all outdevs | 全部禁用 |
–disable-filter=NAME | disable filter name | 禁用 |
–enable-filter=NAME | enable filter name | 使用 |
–disable-filters | disable all filters | 全部禁用 |
external library support:
Using any of the following switches will allow FFmpeg to link to the corresponding external library.All the components depending on that library will become enable,if all their other dependencies are met and they are not explicitly disable. E.g. --enable-libwavpack will enabel linking to libwavpack and allow the libwavpack encoder to be built,unless it is specifically disabled with --disable-encoder=libwavpack.
Note that only the system libraries are auto-detected.All the other external libraries must be explicitly enabled.
Also note that the following help text describes the purpose of the libraries themselves,not all their features will necessarily be usable by FFmpeg.
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–enable-avisynth | enable reading of AviSynth script files[no] | 一个强大的视频后期处理库 |
–disable-bzlib | disable bzlib [autodetect] | 图形处理 |
–enable-chromaprint | enable audio fingerprinting with chromaprint[no] | chromaprint 提取指纹算法 |
–enable frei0r | enable frei0rvideo filtering[no] | 滤镜 |
–enable-gcrypt | enable gcrypt,needed for rtmp(t)e support if openssl,librtmp or gmp is not used[no] | 加密 openssl安全套接字层密码库 |
–enable-gmp | enable gmp,needed for trmp(t)e support if openssl or librtmp is not used[no] | 数学运算能力 |
–enable-gnutils | enable gnutils,needed for https support if openssl or librtmp is not used[no] | ?? |
–disable-iconv | disable iconv [autodetect] | 国际编码的转换 |
–enable-jni | enable jni support | jni 支持 |
–enable-ladspa | enable LADSPA audio filtering[no] | Linux Audio Developer’s Simple Plugin API |
–enable-libass | enable libass subtitles rendering,needed for subtitles and ass filter[no] | LibASS则是一个轻量级的对ASS / SSA格式字幕进行渲染的函数库.该库使用C编写,效率较高.据官方说明,LibASS和VSFilter兼容性最好~ |
–enable-libbluray | enable BluRay reading using libbluray | 蓝光BD |
–enable-libbs2b | enable bs2b DSP library[no] | ?? |
–enable-libcaca | enable textual display using libcaca[no] | 用文本代替图像的图形库 |
–enable-libcelt | enable CELT decoding via libcelt[no] | ?? |
–enable-libcdio | enable audio CD grabbing with libcdio[no] | CD音频抓取 |
–enable-libdc1394 | enable IIDC-1394 grabbing using libdc1394 | ?? |
–enable-libebur128 | enable libebur128 for EBU R128 measurement,needed for loudnorm filter[no] | ?? |
–enable-libfdk-aac | enable AAC de/encoding via libfdk-aac[no] | 一种aac编码,似乎挺好的没有验证过 |
–enable-libflite | enable flite (voice synthesis) support via libflite | ibflite Flite是一个小型、快速的TTS系统,是著名的语音合成系统festival的c版本。 |
–enable-libfontconfig | enable libfontconfig,useful for drawtext filter[no] | 配置字体库 |
–enable-libfreebyte | enable libfreebyte,needed for drawtext filter[no] | ?? |
–enable-libfribidi | enable libfribidi,improves drawtext filter[no] | ?? |
–enable-libgme | enable Game Music Emu via libgme[no] | ?? |
–enable-libgsm | enable GSM Music de/encoding via libgsm[no] | ?? |
–enable-libgsm | enable GSM Music de/encoding via libgsm[no] | ?? |
–enable-libgsm | enable GSM Music de/encoding via libgsm[no] | ?? |
–enable-libgsm | enable GSM Music de/encoding via libgsm[no] | ?? |
–enable-libgsm | enable GSM Music de/encoding via libgsm[no] | ?? |
–enable-libgsm | enable GSM Music de/encoding via libgsm[no] | ?? |
Toolchain options:
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–arch=ARCH | select architecture[] | 选择未处理器体系结构 |
–cpu=CPU | select the minimum required CPU(affects instruction selection,may crash on older CPUS) | 选用要求的最低CPU(影响指令选择,可能在过时的CPU上崩溃) |
–cross-prefix=PREFIX | use PREFIX for compilation tools[] | 编译工具路径 |
–progs-suffix=SUFFIX | program name suffix[] | 程序后缀 |
–enable-cross-compile | assume a cross-compiler is used | 使用交叉编译 |
–sysroot=PATH | root of cross-build tree | 交叉编译树跟目录,编译时期的逻辑目录 |
–sysinclude=PATH | location of cross-build headers | 交叉编译头文件目录 |
–target-os=OS | compiler targets OS[] | 编译器目标操作系统 |
–target-exec=CMD | command to run executables on target | 在目标系统上运行可执行应用的命令 |
–target-path=DIR | path to view of build directory on target | |
–target-samples=DIR | path to samples directory on target | |
–tempprefix=PATH | force fixed dir/prefix instead of mktemp for checks | |
–toolchain=NAME | set tool defaults according to NAME | |
–nm=NM | use nm tool NM[nm -g] | 列出目标文件中的符号的工具链 |
–ar=AR | use archive tool AR [ar] | |
–as=AS | use assembler AS [] | |
–ln_s=LN_S | use symbolic link tool LN_S[ln -s -f] | |
–strip=STRIP | use strip tool STRIP[strip] | |
–windres=WINDRES | use windows resource compiler WINDRES[windres] | |
–yasmexe=EXE | use yasm-compatible assembler EXE | YASM是一个完全重写的NASM汇编 |
–cc=CC | use C compiler CC[gcc] | 用gcc编译 |
–cxx=CXX | use C compiler cxx[g++] | 编译c++ |
–objcc=OCC | use Objc compiler OCC[gcc] | 编译OCC |
–dep-cc=DEPCC | use dependecy generator DEPCC[gcc] | |
–ld=LD | use linker LD[] | |
–pkg-config=PKGCONFIG | use pkg-config tool PKGCONFIGUR[pkg-config] | |
–pkg-config=flags=FLAGS | pass additional flags to pkgconf[] | |
–ranlib=RANLIB | use ranlib RANLIB[ranlib] | |
–doxygen=DOXYGEN | use doxygen to generate API doc[doxygen] | |
–host-cc=HOSTCC | use host c compiler HOSTCC | |
–host-cflags=HCFLAGS | use HCFLAGS when compiler for host | |
–host-cppflags=HCPPFLAGS | use HCPPFLAGS when compiler for host | |
–host-ld=HOSTLD | use host linker HOSTLD | |
–host-ldflags=HLDFLAGS | use HLDFLAGS when link for host | |
–host-libs=HLIBS | use libs HLIBS when linking for host | |
–host-os=OS | compiler host OS[] | |
–extra-cflags=ECFLAGS | add ECFLAGS to CFLAGS[] | |
–extra-cxxflags=ECFLAGS | add ECFLAGS to CXXFLAGS[] | |
–extra-objcflags=FLAGS | add ECFLAGS to OBJCLAGS[] | |
–extra-ldlags=ELDFLAGS | add ECFLAGS to LDLAGS[] | |
–extra-ldexelags=ELDFLAGS | add ECFLAGS to LDEXEFLAGS[] | |
–extra-ldliblags=ELDFLAGS | add ECFLAGS to LDEXEFLAGS[] | |
–extra-libs=ELIBS | add ELIBS[] | |
–extra-version=STRING | version string suffix[] | |
–optflags=OPTFLAGS | override optimization-related compiler flags | |
–build-suffix=SUFFIX | library name suffix[] | |
–enable-pic | build position-independent code | |
–enable-thumb | compiler for thumb instrument code | |
–enable-lto | use link-time optimization | |
–env=”ENV=override” | override the environment variables |
Advanced options(experts only):
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–malloc-prefix=PREFIX | prefix malloc and related names with PREFIX | |
–custom-allocator=NAME | use a supported allocator | |
–disable-symver | disable symbol versioning | |
–enable-hardcoded-tables | use hardcoded tables instead of runtime generation | |
–disable-safe-bitstream-reader | disable buffer boundary checking in bitreaders | |
–enable-memalign-hack | emulate memalign, interferes with memory debuggers | |
–sws-max-filter-size=N | the max filter size swscale uses [$sws_max_filter_size_default] |
Optimization options(experts only):
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–disable-asm | ||
–disable-altivec | ||
–disable-vsx | ||
–disable-power8 | ||
–disable-amd3dnowext | ||
–disable-mmx | ||
–disable-mmxext | ||
–disable-sse | ||
–disable-sse2 | ||
–disable-sse3 | ||
–disable-ssse3 | ||
–disable-sse4 | ||
–disable-sse42 | ||
–disable-avx | ||
–disable-xop | ||
–disable-fma3 | ||
–disable-fma4 | ||
–disable-avx2 | ||
–disable-aesni | ||
–disable-armv5te | ||
–disable-armv6 | ||
–disable-armv6t2 | ||
–disable-vfp | ||
–disable-neon | ||
–disable-inline-asm | ||
–disable-yasm | ||
–disable-mipsdsp | ||
–disable-mipsdspr2 | ||
–disable-msa | ||
–disable-mipsfpu | ||
–disable-mmi | ||
–disable-fast-unaligned |
Developer options(useful when working on FFmpeg itself):
OPTIONS | DESCRIPTION | 描述 |
---|---|---|
–disable-debug | disable debugging symbols | |
–enable-debug=LEVEL | set the debug level [$debuglevel] | |
–disable-optimizations | disable compiler optimizations | |
–enable-extra-warnings | enable more compiler warnings | |
–disable-stripping | disable stringpping executables and shared libraries | |
–assert-level=level | 0(default), 1 or 2, amount of assertion testing,2 causes a slowdown at runtime. | |
–enable-memory-poisoning | fill heap uninitialized allocated space with arbitrary data | |
–valgrind=VALGRIND | ||
–enable-ftrapv | ||
–samples=PATH | ||
–enable-neon-clobber-test | ||
–enable-xmm-clobber-test | ||
–enable-random | ||
–disable-random | ||
–enable-random=LIST | ||
–disable-random=LIST | ||
–random-seed=VALUE | ||
–disable-valgrind-backtrace |
自己觉得陌生单词的释义
- hard accelerators 硬件加速器
- decoders 解码器
- encoders 编码器
- demuxers 解复用器
- muxers 复用器
- parsers 解析器
- protocols 协议
- filters 滤镜
- generate 生成 发生 生
- fatal 致命的 严重的 命中注定的 毁灭性的
- binaries 二进制
- man page 手册
- prefix 前缀
- unredistributable 禁止发布(redistributable)
- licensing 许可
- optimize 优化
- detect 查明
- capabilities 能力
- scale 规模 比例 尺寸
- individual 特别的 个人的
- external 外部的
- corresponding 相应的
- explisitly 明确的
- grabbing 抓取
- synth 音频合成器
- capatible 兼容的
- assembler 汇编程序
- strip 剥离