版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、编译命令行详解
- 命令行参数列表
- 命令行参数理解
参数名 | 参数说明 | 备注 |
extra-asflags | 汇编编译选项参数 | |
extra-cflags | gcc编译选项参数 | 《微软编译选项》 |
extra-ldflags | 链接外部库使用 | |
extra-rcflags | ||
disable-cli | disable cli | 正式版本可以关闭该项。禁止命令行操作。 |
system-libx264 | use system libx264 instead of internal | |
enable-shared | build shared library | |
enable-static | build static library | |
disable-opencl | disable OpenCL features | |
disable-gpl | disable GPL-only features | 商用版本注意GPL license,使用该功能,自研优化代码需要开源。 |
disable-thread | disable multithreaded encoding | |
disable-win32thread | disable win32threads (windows only) | |
disable-interlaced | disable interlaced encoding support | 是否禁止支持场编码 |
bit-depth | set output bit depth (8, 10, all) [all] | 若使用10,要求YUV数据就是10bit。 |
chroma-format | output chroma format (400, 420, 422, 444, all) [all] | |
disable-asm | disable platform-specific assembly optimizations | linux下要安装yasm、windows下安装nasm才能使能该功能。 |
enable-lto | enable link-time optimization | 自动寻找可优化函数,进行内联优化等 |
enable-debug | add -g | |
enable-gprof | add -pg | |
enable-strip | add -s | |
enable-pic | build position-independent code | 地址无关代码 (position-independent code,PIC),又称地址无关可执行文件 (position-independent executable,PIE) ,是指可在主存储器中任意位置正确地运行,而不受其绝对地址影响的一种机器码。PIC广泛使用于共享库,使得同一个库中的代码能够被加载到不同进程的地址空间中。PIC还用于缺少内存管理单元的计算机系统中,使得操作系统能够在单一的地址空间中将不同的运行程序隔离开来。 |
disable-avs | disable avisynth support | 视频后处理工具。参见:AviSynth |
disable-swscale | disable swscale support | 用于视频缩放处理。 |
disable-lavf | disable libavformat support | 直接调用ffmpeg库,解析输入文件为YUV。 |
disable-ffms | disable ffmpegsource support | FFmpegSource2(FFMS2)是 Libav/FFmpeg 的封装库,解析输入文件为YUV。 |
disable-gpac | disable gpac support | 参见《GPCA》 |
disable-lsmash | disable lsmash support | 参见《lsmash》 |
二、编译命令行示例
关闭一些不使用的编译选项,减少不必要的代码分支判断,提高性能。
./configure --disable-avs --disable-swscale --disable-lavf --disable-ffms --disable-interlaced --enable-shared --enable-lto --bit-depth=8 --chroma-format=420 --extra-ldflags=-Wl,--output-def=libx264.def
三、实测gcc编译选项
gcc -Wno-maybe-uninitialized -Wshadow -O3 -ffast-math -m64 -Wall -I. -I. -D_POSIX_C_SOURCE=200112L -std=gnu99 -D_GNU_SOURCE -fomit-frame-pointer -flto -fno-tree-vectorize
四、实测nasm编译选项
nasm -I. -I. -DARCH_X86_64=1 -I./common/x86/ -f win64 -DSTACK_ALIGNMENT=16 -DPIC
nasm官网:https://www.nasm.us/