无法在 Ubuntu 20.04 上编译 FFmpeg

无法在 Ubuntu 20.04 上编译 FFmpeg

我正在关注FFmpeg 的编译指南。在编译完所有必需的依赖项后,我在最后得到了以下错误部分

ERROR: gnutls not found using pkg-config

当我运行如下配置命令时发生此错误:

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs="-lpthread -lm" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-gnutls \
  --enable-libaom \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree

我正在全新安装的 Ubuntu 20.04 上编译 FFmpeg。

答案1

ffbuild目录(路径ffmpeg_sources/ffmpeg/ffbuild/:)中,检查config.log提供有关错误消息的更多信息:

/usr/bin/ld: cannot find -lunistring
collect2: error: ld returned 1 exit status
ERROR: gnutls not found using pkg-config

在 ffmpeg 的帮助下IRC 频道,安装该libunistring-dev包解决了该问题。

sudo apt-get install libunistring-dev

答案2

其他解决方案对我来说不起作用,尽管我使用的是 Debian 而不是 Ubuntu。对我来说,解决方案是:

apt install libgnutls28-dev

答案3

是的,该指南至少在 16.04 版之后的任何 Ubuntu 版本上都无法正常工作。我发现解决此问题的最简单方法是先安装默认的 Ubuntu 软件包,然后生成自定义脚本。在运行 ffmpeg 编译脚本之前,请从 ffmpeg 抱怨的库的官方 Ubuntu 存储库安装默认软件包:

apt install -y gnutls

这些库问题和包配置的根本原因似乎通常与库源文件中不正确的 C/C++ 语法有关。这一直是 Ubuntu 中几个 ffmpeg 依赖项的一个问题(并且仍然是一个问题),例如VLC 的 x265 库. 问题在于BitBucket 最近的决定停止对 Mercurial 的支持,包括决定关闭其论坛,从而从互联网上删除了一些相关讨论和解决方案。:(

答案4

我在 HPC (SLURM) 上构建时遇到了这个问题。问题原来是系统 gcc 版本太旧 (4.8.0)。在我加载 gcc 12.2.0 (module load gcc/12.2.0) 后,错误消失了。请注意,HPC 用户没有 sudo 访问权限,我一直在为此使用 Anaconda libgnutls。

相关内容