FFmpeg编译配置

一、FFmpeg常用的编译配置

关于FFmpeg的编译配置,在clone下源码之后,可以通过 ./configure --help 进行查看,以下对常用配置进行的总结。

1、Standard options

--prefix: 指定ffmpeg安装的路径

2、Licensing options

--enable-gpl :允许使用GPL代码,默认关闭
--enable-nonfree :允许使用不免费代码
--enable-version3: 更新GPL-3

3、Configuration options

--enable-shared:编译成动态库,默认编译成静态库

4、Program options

默认情况下,该设置项的配置都是打开的,特殊情况可配置关闭

5、Documentation options

默认情况下,该设置项的配置都是打开的,特殊情况可配置关闭

6、Component options (组件设置)

默认情况下,该设置项的配置都是打开的,特殊情况可配置关闭,不在此项的组件,需要通过单个组件进行开启。

7、Individual component options (单个组件设置)

可单独配置编解码器、复用与封装器、滤镜等

--enable-filter=delogo :启用去水印的滤镜

8、External library support (配置外部库的支持)

--enable-libfdk-aac:使用 libfdk-aac 库进行aac的编解码
--enable-libx264 :使用 libx264 进行h.264的编码
--enable-libx265 :使用 libx265 进行h.265的编码
--enable-libspeex :使用 libspeex 进行Speex的编解码,Speex是一种声音编码格式

  • 8.1 The following libraries provide various hardware acceleration features(提供硬件加速的库):
    --enable-videotoolbox
    --disable-videotoolbox
9、Toolchain options(编译工具链设置)

--cc=CC:配置使用的c编译器为 gcc,其他的c编译器有:clang
--cxx=CXX:配置使用的c++编译器为 g++

  ========================= 工具链配置参考 ============================

      --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”覆盖环境变量

 =========================== 工具链配置参考 ============================ 
10、Optimization options

--disable-optimizations:关闭代码优化设置

11、Developer options

--disable-debug:禁用调试日志
--enable-debug=LEVEL:设置调试级别,当不配置LEVEL就是禁用调试日志
--disable-optimizations:禁用编译器优化

12、Other options:

--enable-pthread:启用pthreads(多线程),默认关闭

二、Mac环境下编译安装

./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-version3 --enable-shared --enable-filter=delogo --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-libspeex --enable-videotoolbox --enable-debug  --enable-hardcoded-tables --cc=clang --host-cflags= --host-ldflags= --disable-x86asm 
2.1 编译中遇到的问题
(1) ERROR: speex not found using pkg-config
      1、首先检查 speex 是否有安装,没有安装执行 brew install speex 进行安装。
      2、安装完 speex 依然提示这个错误,检查是否安装 pkg-config , 可通过 pkg-config 命令检查,如果提示:command not found: pkg-config,则进行 pkg-config 的安装,brew install pkg-install
(2) ERROR: x264 not found using pkg-config
      brew install x264
(3) ERROR: x265 not found using pkg-config
      brew install x265
(4) 权限问题
      sudo make && sudo make install 
(5) 安装完成后,发现 /usr/local/ffmpeg/bin 没有 ffplay
      这是因为系统缺少sdl2,会导致ffplay无法编译成功,brew install sdl2,然后重新执行安装
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容