FFmpeg 编译参数简单整理
2018-05-07 本文已影响51人
团不慌
1 生成参数
| 参数 | 功能 | 注释 |
|---|---|---|
| --arch | 编译架构 | |
| --help | 打印帮助信息 | |
| --prefix | 安装路径 | Linux默认为/usr/local |
| --libdir | 库安装路径 | 默认PREFIX/lib |
| --shlibdir | 共享库安装路径 | 默认PREFIX/lib |
| --incdir | 头文件安装路径 | 默认PREFIX/include/ffmpeg |
| --mandir | 指定man page路径 | 默认PREFIX/man |
| --cc | 指定编译器 | 默认gcc |
| --make | 指定何种make | |
| --source-path | 源码路径 | |
| --pkg-config | 指定pkg-config | 默认pkg-config |
| --pkg-config-flags | 指定pkg-config参数 | 默认--static |
| --extra-cflags | 添加额外的CFLAG | ECFLAGS |
| --extra-ldflags | 添加额外的LDFLAG | ELDFLAGS |
| --extra-libs | 添加额外的LIB | ELIBS |
| --cpu | 指定最小的CPU版本 | |
| --nm | 指定NM工具 | |
| --ar | 指定AR工具 | |
| --as | 指定汇编工具 | |
| --ld | 指定LD链接器 |
2 交叉参数
| 参数 | 功能 | 注释 |
|---|---|---|
| -cross-prefix | 指定编译工具 | 交叉编译 |
| --cross-compile | 假定使用交叉编译 | |
| --target-os | 目标系统 | |
| --sysroot | 交叉编译树的根 | libc |
| --sysinclude | 交叉编译头文件 | |
| --target-exec | 目标系统上的运行命令 | |
| --target-path | 目标系统上的模拟构建路径 |
3 性能参数
以下参数使用--enable-foo启用或使用--disable-foo禁用时使用--e/d-代替。
| 参数 | 功能 | 注释 |
|---|---|---|
| --e/d-debug | 是否调试 | enable时可指定level |
| --e/d-optimizations | 编译器优化 | |
| --samples | 制定测试示例位置 | |
| --e/d-stripping | 是否剥离可执行程序与共享库 | |
| --e/d-asm | 汇编优化 | |
| --e/d-yasm | 是否使用yasm汇编器 |
其他的可更改优化方案:AltiVec、3DNow! 、MMX、MMX2、SSE、SSE3、armv5te、armv6、armv6t2、ARM VFP、iwmmxt、MMI、neon、VIS
4 功能选项
使用--enable-foo启用或使用--disable-foo禁用需要的功能插件,使用--e/d-代替。某些部件(如decoder)enable时需要明确指明,例:--enable-decoder=libdavs2。
| 参数 | 功能 | 注释 |
|---|---|---|
| --e/d-static | 静态库构建 | 默认:no |
| --e/d-shared | 共享库构建 | 默认:no |
| --e/d-pic | 代码非位置依赖 | 默认:no |
| --e/d-gpl | GPL代码使用 | |
| --e/d-nonfree | 非免费得代码使用 | 默认:no |
| --e/d-doc | 文档构造 | 默认:yes |
| --e/d-pthreads | pthreads | 默认:yes |
| --disable-decoder | 禁用所有解码器 | 同理其他 |
| --enable-decoder=DEC | 打开某个解码器 | 同理其他 |
| --enable-libdavs2 | 启用avs2解码器 | 同理其他 |
注:打开与启用非等同
其他默认开启但可以关闭的部分:ffmpeg、ffprobe、ffplay、ffserver、avdevice、avcodec、avcore、avformat、swscale、特定部件(如某个编解码器等)
可选择禁用的编码:AAN DCT、DCT、Golomb、FFT、Golomb、LPC、MDCT、RDFT、VAAPI、VDPAU、DXVA2