编译 FFmpeg-4.4

下载源码

在 GitHub 下载源码包:FFmpeg
FFmpeg 版本
我下了 4.4 演示,根据需要选取版本,建议选定版本就不要变了,FFmpeg 每个大版本都会改东西,换一个版本就要重新研究一遍。
API 改、结构体改、连宏定义都改,绝了。之所以在网上很少有 FFmpeg 的文档资料,是因为你写文档的速度不一定有他改代码快。。。

要了解 API 怎么用只能啃源代码,或者使用 Doxygen 从源代码生成 API 文档。后面再写一篇博客介绍怎么使用 Doxygen 从源码文件生成 API 文档吧。网上找到一个连接也是用 Doxygen 的,可以看一下:FFmpeg API,修改 URL 的版本号可以查看其它版本的接口。


源码压缩包解压之后有个 FFmpeg-master 的目录,所有的文件都包含在这个目录里面。
大部分开源项目的构建流程主要都分为两步:

  1. 使用 configure 文件进行编译前的配置;
  2. 使用 Makefile 文件进行编译。

configure

configure 文件是一个 shell 脚本,主要是完成编译前的配置,如:获取操作系统的环境信息,根据 CPU 架构选取编译器、根据需要编译指定的功能模块、检测依赖的组件是否安装、指定软件编译完成后的安装路径等配置信息。

查看 configure 的用法:

$ ./configure --help

执行这条命令会列出 configure 脚本支持的所有参数的使用说明,在这里介绍一些常见的参数。

  # 安装路径的配置
  --logfile=FILE           # 日志文件的输出路径
  --prefix=PREFIX          # 安装路径
  --bindir=DIR             # 二进制文件的安装路径
  --datadir=DIR            # 数据文件的安装路径
  --docdir=DIR             # 文档的安装路径
  --libdir=DIR             # 库的安装路径
  --shlibdir=DIR           # 共享库的安装路径
  --incdir=DIR             # 头文件的安装路径
  --mandir=DIR             # 手册的安装路径

  # license
  --enable-gpl             # 允许使用 GPL 代码,生成的库和二进制文件将遵循 GPL
  --enable-version3        # 更新 GPL 到版本 3
  --enable-nonfree         # 允许使用不开源代码

  # 编译选项配置
  --disable-static         # 不构建静态库
  --enable-shared          # 构建动态库
  --enable-small           # 优化生成文件的体积,对应的编译速度会下降

  # 二进制文件构建配置
  --disable-programs       # 不构建命令行程序
  --disable-ffmpeg         # 不构建 FFmpeg 
  --disable-ffplay         # 不构建 ffplay
  --disable-ffprobe        # 不构建 ffprobe

  # 文档构建配置
  --disable-doc            # 不构建文档
  --disable-htmlpages      # 不构建 HTML 文档
  --disable-manpages       # 不构建 man 手册
  --disable-txtpages       # 不构建文本文档

  # 组件禁用
  --disable-avdevice       # 不构建 libavdevice
  --disable-avcodec        # 不构建 libavcodec
  --disable-avformat       # 不构建 libavformat
  --disable-swresample     # 不构建 libswresample
  --disable-swscale        # 不构建 libswscale
  --disable-postproc       # 不构建 libpostproc
  --disable-avfilter       # 不构建 libavfilter

  # 外部库
  --disable-alsa           # 禁用 ALSA
  --enable-libopencv       # 启用 OpenCV
  --enable-libopenh264     # 通过 OpenH264 启用 H.264 编码
  --enable-libopenjpeg     # 通过 OpenJPEG 启用 JPEG 编/解码
  --enable-libv4l2         # 启用 v4l2
  --enable-libx264         # 通过 x264 启用 H.264 编码
  --enable-libx265         # 通过 x265 启用 H.265 编码
  --enable-opengl          # 启用 OpenGL 渲染
  --enable-openssl         # 启用 OpenSSL

上面这些是比较常见的参数,configure 还有很多花里胡哨的参数,有需要可以自己研究。

configure 配置栗子:
安装目录:/usr/local/ffmpeg-4.4
构建动态库,启用 X264、X265
先安装依赖 X264、X265

$ sudo apt install libx264-dev libx265-dev

configure 配置

$ ./configure --prefix=/usr/local/ffmpeg-4.4 --enable-shared --disable-static --enable-gpl --enable-libx264 --enable-libx265

make

开启 4 线程编译,单线程可以去掉 -j4

$ make -j4

安装

$ sudo make install

make install 之后,FFmpeg 就安装到了前面 configure 配置的 /usr/local/ffmpeg-4.4 目录。

配置路径

$ export LD_LIBRARY_PATH=/usr/local/ffmpeg-4.4/lib:$LD_LIBRARY_PATH
$ export PATH=/usr/local/ffmpeg-4.4/bin:$PATH

如果要放到其他机器(硬件平台一致)上用的话,直接把 /usr/local/ffmpeg-4.4 打包到新机器,解压然后配置路径就可以了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值