我的主页

快递查询 :http://m.kuaidi100.com     爱快递查询 :http://www.aikuaidi.cn/              

http://www.qtcn.org/bbs/u/168050  [收藏] [复制]

w642833823

  • 10

    关注

  • 67

    粉丝

  • 42

    访客

  • 等级:新手上路
  • 总积分:43
  • 保密,2011-12-07

最后登录:2024-04-23

更多资料

日志

ffmpeg----configure参数配置说明

2021-01-26 10:32
原文出处:https://blog.csdn.net/nodeman/article/details/10646659
Android: https://blog.csdn.net/bobcat_kay/article/details/80889398
fmpeg各项库说明,及build.sh的shell相关命令说明:
https://blog.csdn.net/u014436704/article/details/106763235

ffmpeg----configure参数配置说明:

https://blog.csdn.net/nodeman/article/details/106466597
注意
  • configure会在控制台输出编译的配置信息,此时一定要认真查看一下里面的信息,特别警告信息,因为你配置的一些选项可能由于条件不满足configure会自动关闭的,或者你把–fatal-warnings这个加上,让警告变成错误
ffmpeg总共有七大库,分别是avdevice,avcodec,avformat,swresample,swscale,postproc,avfilter,加上他们的共同依赖avutil,就算是八大库吧
这八个默认都是开启的,因为avutil是最基本的,因此这个库必须有,其他七个都可以通过如下配置关闭   --disable-avdevice       disable libavdevice build--disable-avcodec        disable libavcodec build--disable-avformat       disable libavformat build--disable-swresample     disable libswresample build--disable-swscale        disable libswscale build--disable-postproc       disable libpostproc build--disable-avfilter       disable libavfilter build

  • 这几大库按需配置,为了减少体积,建议将不用的关闭掉,关闭的时候还要根据他们之间的依赖关系,这个依赖关系可以在源代码ffbuild/config.mak中看出,如图


  • 举个例子,如果要使用avformat,那么就不能把avcodec关闭



–enable-gpl --enable-version3

  • ffmpeg默认许可证LGPL 2.1,如果需要加gpl的库需要使用gpl的许可证,例如libx264就是gpl的,如果需要加入libx264则需要–enable-gpl
  • 如果想更新许可证版本到3,那么就加入–enable-version3

–disable-everything

  • 这个选项相当于关闭了encoders,decoders,hwaccels,muxers,demuxers,parsers,bsfs,protocols,devices,indevs,outdevs,filters共9种组件;

  • 如果用户增加了这个选项,那么就需要手动打开所需的以上encoders,decoders等

  • 比如我只想编译h264的解码器和支持硬解,那么只需要如下即可,没有配置的都会关闭,只打开你所配置的 ./configure --disable-everything --enable-decoder=h264 --enable-hwaccel=h264_dxva21
  • 1
  
如果没有加上–disable-everything,那么相当于开启了ffmpeg的9种组件支持的所有东西  
我们如果要编译ffmpeg库来二次开发,那么一般情况下不会用到所有东西,因此建议加上这个选项,然后再通过enable只打开需要的,这样能减少最后编译库的大小和时间
–disable-[component]

  • 我们都知道ffmpeg完全编译后有avcodec,avdevice,avformat,swresample,swscale,avfilter,avutil,postproc这8大块

  • 如果不做任何配置,这8大块默认是开启的

  • 而我们可能不需要其中的一些,比如不需要后处理postproc这一块,那么我们就可以关闭它,比如 ./configure --disable-postproc1
  • 1
  
这样就不会编译postproc这个组件了
–enable-shared

  • 默认情况下编译的库是静态的,如果我们想编译动态的,那么就可以加上这个选项,而ffmpeg还为我们提供了显示关闭静态库的选项–disable-static,而一般情况下静动态是不会同时编译的,也就是说如果打开动态库的开关,那么静态库也就被关闭了,因此如果我们想编译动态库的就加上这一行,如果是静态的就不用作修改 ./configure --enable-shared1
  • 1

–enable-cross-compile
  • 如果想交叉编译,那么得开启这个开启这个选项,同时还得设置–arch和–target_os和–cross_prefix,实际上你只要增加了–cross_prefix选项,那么configure会自动帮你加上–enable-cross-compile,也就是有了–cross_prefix,–enable-cross-compile你可以省略不写
  • 从configure里可以看出,如下
  • –arch可以设置哪些值呢,直接在configure中搜索“ARCH_LIST”就可以查到
  • –target_os可以设置的值在configure文件中可以你通过搜索“case $target_os in”就可以定位到了
  • –cross-prefix这个指定的是交叉编译工具的前缀(如果没有前缀可以不写),比如如果交叉编译工具x86_64-w64-mingw32-gcc,那么你就应该写–cross-prefix=x86_64-w64-mingw32-,注意最后的横线,别漏了,然后configure就会找到–cc设置的值,这个值默认是gcc,也就是相当于加了–cc=gcc的选项,configure会把这两个值拼接在一起,形成x86_64-w64-mingw32-gcc,这样就找到了这个交叉编译工具,至于这个x86_64-w64-mingw32-gcc你肯定要将其配置进环境变量,不然都找不到路径就没法使用了

–extra-
  • 如果需要在编译时增加其他库,则一般需要这个将其包含进来
  • 最常见的就是–extra-cflags和–extra-ldflags
--extra-cflags="-I/path/include "    //增加库的头文件--extra-ldflags="-L/path/to/your/lib"  //增加库(so等)


基本参数选项:

命令

帮助信息

--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/maninstall 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-libx264

启用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

启用libdc1394libraw1394抓取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]






高级参数选项:

命令

帮助信息

--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编译器(默认gccuse C compiler CC [gcc]

--make=MAKE

使用特定的make | use specified make [make]

--extra-cflags=ECFLAGS

添加ECFLAGSCFLAGS | add ECFLAGS to CFLAGS []

--extra-ldflags=ELDFLAGS

添加ELDFLAGSLDFLAGS(默认-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

选择机器架构(默认x86select architecture [x86]

--cpu=CPU

选用最低的cpu(影响指令的选择,可以在老CPU上出错)| selects the minimum cpu required (affects instruction selection, may crash on older CPUs)

--powerpc-perf-enable

启用PPC上面的性能报告(需要启用PMCenable 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

启用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




分类:QT|回复:0|浏览:775|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:04-23 21:56
©2005-2016 QTCN开发网 版权所有 Gzip disabled