FFMPEG 配置選項詳細說明


轉自:https://blog.csdn.net/z2066411585/article/details/81239446

 

用法:配置[選項]
選項:[描述后括號中的默認值]

幫助選項:
--help 打印此消息
--quiet 抑制顯示信息輸出
--list-decoders 顯示所有可用的解碼器
--list-encoders 顯示所有可用的編碼器
--list-hwaccels 顯示所有可用的硬件加速器
--list-demuxers 顯示所有可用的解復用器
--list-muxers 顯示所有可用的復用器
--list-parsers 顯示所有可用的解析器
--list-protocols 顯示所有可用的協議
--list-bsfs 顯示所有可用的比特流過濾器
--list-indevs 顯示所有可用的輸入設備
--list-outdevs 顯示所有可用的輸出設備
--list-filters 顯示所有可用的過濾器

標准選項:
--logfile = FILE日志測試並輸出到FILE [ffbuild / config.log]
--disable-logging不記錄配置調試信息
- 如果生成任何配置警告,則-fatal-warnings將失敗
--prefix = PREFIX安裝在PREFIX [/ usr / local]
-bindir = DIR在DIR [PREFIX / bin]中安裝二進制文件
-datadir = DIR在DIR中安裝數據文件[PREFIX / share / ffmpeg]
-docdir = DIR中的DIR安裝文檔[PREFIX / share / doc / ffmpeg]
--libdir = DIR在DIR [PREFIX / lib]中安裝庫
--shlibdir = DIR在DIR [LIBDIR]中安裝共享庫
--incdir = DIR安裝包含在DIR [PREFIX / include]中
--mandir =在DIR安裝手冊頁[PREFIX / share / man]
--pkgconfigdir = DIR在DIR中安裝pkg-config文件[LIBDIR / pkgconfig]
--enable-rpath使用rpath允許在路徑中安裝庫
不屬於動態鏈接器搜索路徑的一部分
鏈接程序時使用rpath(USE WITH CARE)
--install-name-dir =已安裝目標的DIR Darwin目錄名

許可選項:
--enable-gpl允許使用GPL代碼,生成的庫
和二進制文件將在GPL下[no]
--enable-version3升級(L)GPL到版本3 [no]
--enable-nonfree允許使用非自由代碼,生成的庫
和二進制文件將是不可分發的[不]

配置選項:
--disable-static不構建靜態庫[no]
--enable-shared構建共享庫[no]
--enable-small優化尺寸而不是速度
--disable-runtime-cpudetect禁用在運行時檢測CPU功能(較小的二進制)
--enable-grey啟用全灰度支持(較慢的顏色)
--disable-swscale-alpha禁用swscale中的alpha通道支持
--disable-all禁用構建組件,庫和程序
--disable-autodetect禁用自動檢測到的外部庫[no]

計划選項:
--disable-programs不構建命令行程序
--disable-ffmpeg禁用ffmpeg構建
--disable-ffplay禁用ffplay構建
--disable-ffprobe禁用ffprobe構建

文檔選項:
--disable-doc不構建文檔
--disable-htmlpages不構建HTML文檔頁面
--disable-manpages不構建man文檔頁面
--disable-podpages不構建POD文檔頁面
--disable-txtpages不構建文本文檔頁面

組件選項:
--disable-avdevice禁用libavdevice構建
--disable-avcodec禁用libavcodec構建
--disable-avformat禁用libavformat構建
--disable-swresample禁用libswresample build
--disable-swscale禁用libswscale構建
--disable-postproc禁用libpostproc構建
--disable-avfilter禁用libavfilter構建
--enable-avresample啟用libavresample build(不建議使用)[no]
--disable-pthreads禁用pthreads [autodetect]
--disable-w32threads禁用Win32線程[autodetect]
--disable-os2threads禁用OS / 2線程[autodetect]
--disable-network禁用網絡支持[否]
--disable-dct禁用DCT代碼
--disable-dwt禁用DWT代碼
--disable-error-resilience禁用錯誤恢復代碼
--disable-lsp禁用LSP代碼
--disable-lzo禁用LZO解碼器代碼
--disable-mdct禁用MDCT代碼
--disable-rdft禁用RDFT代碼
--disable-fft禁用FFT代碼
--disable-faan禁用浮點AAN(I)DCT代碼
--disable-pixelutils禁用libavutil中的pixel utils

個別組件選項:
--disable-everything禁用下面列出的所有組件
--disable-encoder = NAME禁用編碼器名稱
--enable-encoder = NAME啟用編碼器NAME
--disable-encoders禁用所有編碼器
--disable-decoder = NAME禁用解碼器NAME
--enable-decoder = NAME啟用解碼器NAME
--disable-decoders禁用所有解碼器
--disable-hwaccel = NAME禁用hwaccel NAME
--enable-hwaccel = NAME啟用hwaccel NAME
--disable-hwaccels禁用所有hwaccel
--disable-muxer = NAME禁用muxer NAME
--enable-muxer = NAME啟用muxer NAME
--disable-muxers禁用所有復用器
--disable-demuxer = NAME禁用demuxer NAME
--enable-demuxer = NAME啟用解復用程序NAME
--disable-demuxers禁用所有解復用器
--enable-parser = NAME啟用解析器NAME
--disable-parser = NAME禁用解析器NAME
--disable-parsers禁​​用所有解析器
--enable-bsf = NAME啟用比特流過濾器NAME
--disable-bsf = NAME禁用比特流過濾器NAME
--disable-bsfs禁用所有比特流過濾器
--enable-protocol = NAME啟用協議NAME
--disable-protocol = NAME禁用協議名稱
--disable-protocols禁用所有協議
--enable-indev = NAME啟用輸入設備NAME
--disable-indev = NAME禁用輸入設備NAME
--disable-indevs禁用輸入設備
--enable-outdev = NAME啟用輸出設備NAME
--disable-outdev = NAME禁用輸出設備NAME
--disable-outdevs禁用輸出設備
--disable-devices禁用所有設備
--enable-filter = NAME啟用過濾器NAME
--disable-filter = NAME禁用過濾器名稱
--disable-filters禁用所有過濾器

外部庫支持:
使用以下任何一個開關將允許FFmpeg鏈接到
相應的外部庫。所有組件都依賴於該庫
如果所有其他依賴項都得到滿足而未滿足,則將啟用
明確禁用。例如。 –enable-libwavpack將啟用鏈接
libwavpack並允許構建libwavpack編碼器,除非它是
使用–disable-encoder = libwavpack專門禁用。

請注意,僅自動檢測系統庫。所有其他外部
必須明確啟用庫。

另請注意,以下幫助文本描述了庫的用途
他們自己並非所有功能都必須由FFmpeg使用。

--disable-alsa禁用ALSA支持[autodetect]
--disable-appkit禁用Apple AppKit框架[autodetect]
--disable-avfoundation禁用Apple AVFoundation框架[autodetect]
--enable-avisynth可以讀取AviSynth腳本文件[no]
--disable-bzlib disable bzlib [autodetect]
--disable-coreimage禁用Apple CoreImage框架[autodetect]
--enable-chromaprint啟用帶色度的音頻指紋識別[no]
--enable-frei0r啟用frei0r視頻過濾[no]
--enable-gcrypt啟用gcrypt,rtmp(t)e支持所需
如果沒有使用openssl,librtmp或gmp [no]
--enable-gmp啟用gmp,rtmp(t)e支持所需
如果沒有使用openssl或librtmp [no]
--enable-gnutls支持https支持所需的gnutls
如果沒有使用openssl或libtls [no]
--disable-iconv禁用iconv [autodetect]
--enable-jni啟用JNI支持[no]
--enable-ladspa啟用LADSPA音頻過濾[否]
--enable-libaom通過libaom啟用AV1視頻編碼/解碼[no]
--enable-libass啟用libass字幕渲染,
字幕和屁股過濾所需[no]
--enable-libbluray使用libbluray啟用BluRay讀取[no]
--enable-libbs2b啟用bs2b DSP庫[no]
--enable-libcaca使用libcaca啟用文本顯示[no]
--enable-libcelt通過libcelt啟用CELT解碼[no]
--enable-libcdio啟用音頻CD抓取libcdio [no]
--enable-libcodec2使用libcodec2啟用codec2 en / decode [no]
--enable-libdc1394使用libdc1394啟用IIDC-1394
和libraw1394 [no]
--enable-libfdk-aac通過libfdk-aac啟用AAC de / encoding [no]
--enable-libflite通過libflite啟用flite(語音合成)支持[no]
--enable-libfontconfig啟用libfontconfig,對drawtext過濾器很有用[no]
--enable-libfreetype啟用libfreetype,drawtext過濾器需要[no]
--enable-libfribidi啟用libfribidi,改進了drawtext過濾器[no]
--enable-libgme通過libgme啟用游戲音樂Emu [no]
--enable-libgsm通過libgsm啟用GSM de / encoding [no]
--enable-libiec61883通過libiec61883啟用iec61883 [no]
--enable-libilbc通過libilbc啟用iLBC de / encoding [no]
--enable-libjack啟用JACK音頻聲音服務器[否]
--enable-libkvazaar通過libkvazaar啟用HEVC編碼[no]
--enable-libmodplug通過libmodplug啟用ModPlug [no]
--enable-libmp3lame通過libmp3lame啟用MP3編碼[no]
--enable-libopencore-amrnb通過libopencore-amrnb啟用AMR-NB de / encoding [no]
--enable-libopencore-amrwb通過libopencore-amrwb啟用AMR-WB解碼[no]
--enable-libopencv通過libopencv啟用視頻過濾[no]
--enable-libopenh264通過OpenH264啟用H.264編碼[no]
--enable-libopenjpeg通過OpenJPEG啟用JPEG 2000 de / encoding [no]
--enable-libopenmpt通過libopenmpt啟用解碼跟蹤文件[no]
--enable-libopus通過libopus啟用Opus de / encoding [no]
--enable-libpulse通過libpulse啟用Pulseaudio輸入[no]
--enable-librsvg通過librsvg啟用​​SVG光柵化[no]
--enable-librubberband啟用橡皮帶過濾器所需的橡皮帶[no]
--enable-librtmp通過librtmp [no]啟用RTMP [E]支持
--enable-libshine通過libshine啟用定點MP3編碼[no]
--enable-libsmbclient通過libsmbclient啟用Samba協議[no]
--enable-libsnappy啟用Snappy壓縮,用於hap編碼[no]
--enable-libsoxr enable包含libsoxr重采樣[no]
--enable-libspeex通過libspeex啟用Speex de / encoding [no]
--enable-libsrt通過libsrt啟用Haivision SRT協議[no]
--enable-libssh通過libssh啟用SFTP協議[no]
--enable-libtesseract啟用tesseract,ocr過濾器需要[no]
--enable-libtheora通過libtheora啟用Theora編碼[no]
--enable-libtls啟用了LibreSSL(通過libtls),這是https支持所必需的
如果沒有使用openssl或gnutls [no]
--enable-libtwolame通過libtwolame啟用MP2編碼[no]
--enable-libv4l2啟用libv4l2 / v4l-utils [no]
--enable-libvidstab使用vid.stab [no]啟用視頻穩定
--enable-libvmaf通過libvmaf啟用vmaf過濾器[no]
--enable-libvo-amrwbenc通過libvo-amrwbenc [no]啟用AMR-WB編碼
--enable-libvorbis通過libvorbis啟用Vorbis en /解碼,
本機實現存在[否]
--enable-libvpx通過libvpx啟用VP8和VP9 de / encoding [no]
--enable-libwavpack通過libwavpack啟用wavpack編碼[no]
--enable-libwebp通過libwebp啟用WebP編碼[no]
--enable-libx264通過x264啟用H.264編碼[no]
--enable-libx265通過x265啟用HEVC編碼[no]
--enable-libxavs通過xavs啟用AVS編碼[no]
--enable-libxcb使用XCB啟用X11抓取[autodetect]
--enable-libxcb-shm啟用X11抓取shm通信[autodetect]
--enable-libxcb-xfixes啟用X11抓取鼠標渲染[autodetect]
--enable-libxcb-shape啟用X11抓取形狀渲染[autodetect]
--enable-libxvid通過xvidcore啟用Xvid編碼,
原生MPEG-4 / Xvid編碼器存在[no]
--enable-libxml2使用C庫libxml2 [no]啟用XML解析
--enable-libzimg啟用z.lib,zscale過濾器需要[no]
--enable-libzmq啟用通過libzmq傳遞的消息[no]
--enable-libzvbi通過libzvbi啟用圖文電視支持[no]
--enable-lv2啟用LV2音頻過濾[否]
--disable-lzma disable lzma [autodetect]
--enable-decklink啟用Blackmagic DeckLink I / O支持[no]
--enable-libndi_newtek啟用Newteck NDI I / O支持[no]
--enable-mediacodec支持Android MediaCodec [no]
--enable-libmysofa啟用libmysofa,sofalizer過濾器需要[no]
--enable-openal啟用OpenAL 1.1捕獲支持[no]
--enable-opencl啟用OpenCL處理[no]
--enable-opengl啟用OpenGL渲染[no]
--enable-openssl啟用openssl,https支持所需
如果不使用gnutls或libtls [no]
--disable-sndio禁用sndio支持[autodetect]
--disable-schannel禁用SChannel SSP,需要TLS支持
Windows如果沒有使用openssl和gnutls [autodetect]
--disable-sdl2禁用sdl2 [autodetect]
--disable-securetransport禁用TLS支持所需的安全傳輸
在OSX上如果沒有使用openssl和gnutls [autodetect]
--disable-xlib禁用xlib [autodetect]
--disable-zlib禁用zlib [autodetect]

以下庫提供各種硬件加速功能:
--disable-amf禁用AMF視頻編碼代碼[autodetect]
--disable-audiotoolbox禁用Apple AudioToolbox代碼[autodetect]
--enable-cuda-sdk啟用需要CUDA SDK的CUDA功能[否]
--disable-cuvid禁用Nvidia CUVID支持[autodetect]
--disable-d3d11va禁用Microsoft Direct3D 11視頻加速代碼[autodetect]
--disable-dxva2禁用Microsoft DirectX 9視頻加速代碼[autodetect]
--disable-ffnvcodec禁用動態鏈接的Nvidia代碼[autodetect]
--enable-libdrm啟用DRM代碼(Linux)[no]
--enable-libmfx通過libmfx [no]啟用Intel MediaSDK(AKA快速同步視頻)代碼
--enable-libnpp啟用基於Nvidia Performance Primitives的代碼[no]
--enable-mmal通過MMAL啟用Broadcom多媒體抽象層(Raspberry Pi)[no]
--disable-nvdec禁用Nvidia視頻解碼加速(通過hwaccel)[autodetect]
--disable-nvenc禁用Nvidia視頻編碼代碼[autodetect]
--enable-omx啟用OpenMAX IL代碼[no]
--enable-omx-rpi為Raspberry Pi啟用OpenMAX IL代碼[no]
--enable-rkmpp啟用Rockchip Media Process Platform代碼[no]
--disable-v4l2-m2m禁用V4L2 mem2mem代碼[autodetect]
--disable-vaapi禁用視頻加速API(主要是Unix / Intel)代碼[autodetect]
--disable-vdpau禁用Nvidia Video Decode和Presentation API for Unix code [autodetect]
--disable-videotoolbox禁用VideoToolbox代碼[autodetect]

工具鏈選項:
--arch = ARCH select architecture []
--cpu = CPU選擇所需的最小CPU(影響
指令選擇,可能會在較舊的CPU上崩潰)
--cross-prefix = PREFIX使用PREFIX編譯工具[]
--progs-suffix = SUFFIX程序名后綴[]
--enable-cross-compile假設使用了交叉編譯器
--sysroot =交叉構建樹的PATH根
--sysinclude =交叉構建系統頭的PATH位置
--target-os = OS編譯器目標OS []
--target-exec = CMD命令在目標上運行可執行文件
--target-path =在目標上查看構建目錄的DIR路徑
--target-samples =目標上樣本目錄的DIR路徑
--tempprefix = PATH強制修復dir /前綴而不是mktemp進行檢查
--toolchain = NAME根據NAME設置工具默認值
(gcc-asan,clang-asan,gcc-msan,clang-msan,
gcc-tsan,clang-tsan,gcc-usan,clang-usan,
valgrind-massif,valgrind-memcheck,
msvc,icl,gcov,llvm-cov,hardened)
--nm = NM使用nm工具NM [nm -g]
--ar = AR使用存檔工具AR [ar]
--as = AS使用匯編程序AS []
--ln_s = LN_S使用符號鏈接工具LN_S [ln -s -f]
--strip = STRIP使用剝離工具STRIP [strip]
--windres = WINDRES使用windows資源編譯器WINDRES [windres]
--x86asmexe = EXE使用nasm兼容的匯編程序EXE [nasm]
--cc = CC使用C編譯器CC [gcc]
--cxx = CXX使用C編譯器CXX [g ++]
--objcc = OCC使用ObjC編譯器OCC [gcc]
--dep-cc = DEPCC使用依賴關系生成器DEPCC [gcc]
--nvcc = NVCC使用Nvidia CUDA編譯器NVCC [nvcc]
--ld = LD使用鏈接器LD []
--pkg-config = PKGCONFIG使用pkg-config工具PKGCONFIG [pkg-config]
--pkg-config-flags = FLAGS將附加標志傳遞給pkgconf []
--ranlib = RANLIB使用ranlib RANLIB [ranlib]
--doxygen = DOXYGEN使用DOXYGEN生成API doc [doxygen]
--host-cc = HOSTCC使用主機C編譯器HOSTCC
--host-cflags = HCFLAGS在編譯主機時使用HCFLAGS
--host-cppflags = HCPPFLAGS在編譯主機時使用HCPPFLAGS
--host-ld = HOSTLD使用主機鏈接器HOSTLD
--host-ldflags = HLDFLAGS在鏈接主機時使用HLDFLAGS
--host-libs = HLIBS在鏈接主機時使用libs HLIBS
--host-os = OS編譯器主機OS []
--extra-cflags = ECFLAGS將ECFLAGS添加到CFLAGS []
--extra-cxxflags = ECFLAGS將ECFLAGS添加到CXXFLAGS []
--extra-objcflags = FLAGS將標志添加到OBJCFLAGS []
--extra-ldflags = ELDFLAGS將ELDFLAGS添加到LDFLAGS []
--extra-ldexeflags = ELDFLAGS將ELDFLAGS添加到LDEXEFLAGS []
--extra-ldsoflags = ELDFLAGS將ELDFLAGS添加到LDSOFLAGS []
--extra-libs = ELIBS add ELIBS []
--extra-version = STRING版本字符串后綴[]
--optflags = OPTFLAGS覆蓋與優化相關的編譯器標志
--nvccflags = NVCCFLAGS覆蓋nvcc標志[-gencode arch = compute_30,code = sm_30 -O2]
--build-suffix = SUFFIX庫名后綴[]
--enable-pic構建與位置無關的代碼
Thumb指令集的--enable-thumb編譯
--enable-lto使用鏈接時優化
--env =“ENV = override”覆蓋環境變量 

高級選項(僅限專家):
--malloc-prefix = PREFIX前綴malloc和PREFIX的相關名稱
--custom-allocator = NAME使用受支持的自定義分配器
--disable-symver禁用符號版本控制
--enable-hardcoded-tables使用硬編碼表而不是運行時生成
- 禁用安全比特流閱讀器
在bitreaders中禁用緩沖區邊界檢查
(更快,但可能會崩潰)
--sws-max-filter-size = N swscale使用的最大過濾器大小[256]

優化選項(僅限專家):
--disable-asm禁用所有程序集優化
--disable-altivec禁用AltiVec優化
--disable-vsx禁用VSX優化
--disable-power8禁用POWER8優化
--disable-amd3dnow禁用3DNow!優化
--disable-amd3dnowext禁用3DNow!擴展優化
--disable-mmx禁用MMX優化
--disable-mmxext禁用MMXEXT優化
--disable-sse禁用SSE優化
--disable-sse2禁用SSE2優化
--disable-sse3禁用SSE3優化
--disable-ssse3禁用SSSE3優化
--disable-sse4禁用SSE4優化
--disable-sse42禁用SSE4.2優化
--disable-avx禁用AVX優化
--disable-xop禁用XOP優化
--disable-fma3禁用FMA3優化
--disable-fma4禁用FMA4優化
--disable-avx2禁用AVX2優化
--disable-avx512禁用AVX-512優化
--disable-aesni禁用AESNI優化
--disable-armv5te禁用armv5te優化
--disable-armv6禁用armv6優化
--disable-armv6t2禁用armv6t2優化
--disable-vfp禁用VFP優化
--disable-neon禁用NEON優化
--disable-inline-asm禁用內聯匯編
--disable-x86asm禁用獨立x86程序集
--disable-mipsdsp禁用MIPS DSP ASE R1優化
--disable-mipsdspr2禁用MIPS DSP ASE R2優化
--disable-msa禁用MSA優化
--disable-mipsfpu禁用浮點MIPS優化
--disable-mmi禁用龍芯SIMD優化
--disable-fast-unaligned認為未對齊的訪問速度很慢

開發人員選項(在處理FFmpeg時很有用):
--disable-debug禁用調試符號
--enable-debug = LEVEL設置調試級別[]
--disable-optimizations禁用編譯器優化
--enable-extra-warnings可以啟用更多編譯器警告
--disable-stripping禁用剝離可執行文件和共享庫
--assert-level = 0級(默認),1或2,斷言測試量,
2導致運行時減速。
--enable-memory-poisoning fill heap未初始化的已分配空間和任意數據
--valgrind = VALGRIND通過valgrind運行“make fate”測試來檢測內存
泄漏和錯誤,使用指定的valgrind二進制文件。
不能與--target-exec結合使用
--enable-ftrapv陷阱算術溢出
--samples = FATE的測試樣本的PATH位置,如果沒有設置使用
make調用時的$ FATE_SAMPLES。
--enable-neon-clobber-test檢查NEON寄存器用於破壞(應該是
僅用於調試目的)
--enable-xmm-clobber-test檢查XMM注冊用於clobbering(僅限Win64;
應該只用於調試目的)
--enable-random隨機啟用/禁用組件
--disable隨機
--enable-random = LIST隨機啟用/禁用特定組件或
--disable-random = LIST組件組。 LIST是以逗號分隔的列表
NAME是組件的NAME [:PROB]條目
(組)和PROB相關的概率
NAME(默認為0.5)。
--random-seed = --enable / disable-random的VALUE種子值
--disable-valgrind-backtrace不會在Valgrind下打印回溯
(僅適用於--disable-optimizations構建)
--enable-osfuzz啟用構建模糊工具
--libfuzzer = libfuzzer的路徑
--ignore-tests = TESTS以逗號分隔的列表(沒有“fate-”前綴
在名稱中)的結果被忽略的測試
--enable-linux-perf啟用Linux性能監視器API

注意:目標文件是在啟動configure的位置構建的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM