编译FFmpeg遇ERROR: SvtAv1Enc not found using pkg-config问题求助
解决FFmpeg编译时
ERROR: SvtAv1Enc not found using pkg-config的问题 我之前在编译集成SVT-AV1的FFmpeg时也碰到过一模一样的问题,给你梳理几个亲测有效的解决方向:
1. 确认SVT-AV1的安装路径与pkg-config搜索范围
首先得确保SVT-AV1确实编译安装完成,且pkg-config能找到它的配置文件:
- 编译完成的SVT-AV1通常会把
SvtAv1Enc.pc文件放在/usr/local/lib/pkgconfig或/usr/lib/pkgconfig目录下,你可以先手动查找确认:find /usr/local /usr -name "SvtAv1Enc.pc" - 如果找到了该文件,但pkg-config仍识别不到,大概率是这个目录不在pkg-config的默认搜索路径里。你可以临时把路径加入环境变量,再重新运行FFmpeg的configure:
export PKG_CONFIG_PATH=/path/to/the/pkgconfig/dir:$PKG_CONFIG_PATH ./configure --enable-libsvtav1
2. 务必启用SVT-AV1的共享库编译
很多人会忽略这个关键参数:FFmpeg需要动态链接的SVT-AV1库,如果你编译SVT-AV1时用了默认的静态编译,就算安装成功,pkg-config也识别不到对应的库配置:
- 重新编译SVT-AV1时,记得加上
-DBUILD_SHARED_LIBS=ON的CMake参数:cd SVT-AV1/build cmake -DBUILD_SHARED_LIBS=ON .. make -j$(nproc) sudo make install
3. Ubuntu 18.04 Docker容器的特殊处理
Ubuntu 18.04的pkg-config版本偏旧,系统库缓存也需要手动更新:
- 安装完SVT-AV1后,先更新系统的库缓存:
sudo ldconfig - 如果还是不行,可以直接给FFmpeg的configure指定头文件和库的绝对路径,绕开pkg-config的问题:
./configure --enable-libsvtav1 \ --extra-cflags="-I/usr/local/include" \ --extra-ldflags="-L/usr/local/lib -lSvtAv1Enc"
4. 检查FFmpeg与SVT-AV1的版本兼容性
虽然那个GitHub Issue已标记解决,但版本不匹配仍可能导致问题:
- 建议拉取FFmpeg的最新Git版本,同时同步SVT-AV1的master分支重新编译,避免版本兼容问题。
最后查看config.log的细节
你提供的config.log里应该有更具体的报错信息,比如pkg-config查找SvtAv1Enc时的输出,重点关注类似这样的段落:
pkg-config --exists --print-errors "SvtAv1Enc >= x.x.x"
如果提示版本不足,就升级SVT-AV1;如果提示找不到文件,就回到前面的步骤检查路径和共享库配置。
内容的提问来源于stack exchange,提问作者Dmitry Maksakov
相关产品推荐
相关产品推荐

