ffmpeg 编译问题记录

ffmpeg 编译

项目中需要使用ffmpeg进行视频的编码, 编译ffmpeg之前首先要编译x264, 见这个编译libx264

准备

  1. 下载 ffmpeg, github 地址, ffmpeg选择 n4.0.2
  2. 解压

配置 makefile

./configure \
--enable-nonfree \
--prefix=/home/capp/Downloads/ffmpeg-n4.0.2/libs \
--enable-shared \
--disable-static \
--enable-gpl \
--enable-libx264 \
--enable-ffmpeg \
--disable-asm \
--disable-optimizations \
--disable-stripping

--prefix: 指定安装路径
配置 makefile 遇到的一些问题参考问题记录里的内容

编译安装

make 
make install

编译安装之后遇到的问题

问题记录

1. 配置 makefile 问题记录:


  • 执行 configure 指令可能会报错

ERROR: libx264 not found

原因: libx264 库没有找到
解决方法: 配置一下环境变量

export PKG_CONFIG_PATH=/home/capp/Downloads/x264/libs/lib/pkgconfig/

指定的路径就是x264的安装路径, 在lib目录下面的pkgconfig目录

  • 配置好环境变量再次执行configure指令, 还有可能会出错

WARNING: using libfdk without pkg-config
WARNING: using libx264 without pkg-config

这个问题我的解决方式是安装 pkg-config 这个安装包

sudo apt install pkg-config

在去执行 configure 就没有错误了

2. 编译之后遇到的问题


编译之后查看目标文件的链接情况 ldd ffmpeg
看到的结果是有几个库没有找到链接库文件, 显示xxx not found, 但是库文件是存在的.
查找资料得知, 由于我们的编译安装路径是在自己的目录下, ld 链接找不到这个库文件, 需要将库的安装路径添加到 ld config 中.

# 编辑 /etc/ld.conf 文件
vim /etc/ld.conf
include ld.so.conf.d/*.conf
/home/capp/Downloads/x264/libs/lib
/home/capp/Downloads/ffmpeg-n4.0.2/libs/lib
# 然后执行命令
ldconfig

当然, 更好的方式不是编辑 /etc/ld.conf 文件, 而是在 /etc/ld.conf.d/ 目录下创建一个属于自己的文件, 不过需要注意的是, 文件的结尾必须是以 .conf 为后缀.

最后说一下

pkg-config 是一个第三方库的管理工具, 当需要引用第三方库时, 通常的做法是将库的头文件路径和库的路径都加到编译选项中, 如果使用 pkg-config 会帮我们省去这一步骤.
第三方库在编译完成之后会在 库的安装路径之下生成一个 pkgconfig 的目录, 如果编译的时候需要第三方库, 直接将这个目录的路径设置到 PKG_CONFIG_PATH 环境变量中, 在编译的时候会去自动查找第三方库.

参考链接

链接出错
pkg-config 介绍

你可能感兴趣的:(杂记)