在 18.04.2 上编译 ffmpeg 失败,未找到 --enable-lib*

在 18.04.2 上编译 ffmpeg 失败,未找到 --enable-lib*

使用官方指南我已经在 SMP Debian 4.9.144-3.1 上成功编译了 ffmpeg(支持 decklink)。

由于生成的二进制文件无法在我的 Ubuntu 18.04.2 上运行,我尝试使用相同的指南再次编译。我之前也更新过 Ubuntu,依赖项应该都是最新的。此外,文件夹结构似乎没问题。

因此它实际上在 ffmpeg ./configure 期间失败,shell 吐出例如:

./ffmpegcompil.sh: 21: ./ffmpegcompil.sh: --enable-libass: not found

config.log 并没有让我变得更聪明,它似乎只是在测试阶段失败了,首先是

... zscale_filter='yes' mktemp -u XXXXXX uxtubn test_ld cc test_cc ...

此后,经过多次测试,出现了一些警告、较少错误,然后在 config.log 中毫无预兆地中止。

如果我从脚本中删除 --enable-libass,它将失败并出现另一个“未找到”的库。

如何解决这个问题?谢谢!

这是我的脚本:

cd ~/ffmpeg_sources && \ wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ 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-nonfree \ --enable-gpl \ --enable-libsrt \ --enable-decklink \ --extra-cflags="-I$HOME/ffmpeg_build/include/decklink" \ --extra-ldflags="-L$HOME/ffmpeg_build/include/decklink" \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 && \ PATH="$HOME/bin:$PATH" make && \ make install && \ hash -r

答案1

您应该使用 APT 的强大功能来获取包的构建依赖项:

  1. 使能够源代码存储库软件与更新software-properties-gtk
  2. 安装 ffmpeg 的构建依赖项:

    sudo apt-get build-dep ffmpeg
    
  3. 继续配置和编译。

注意:ffmpeg 是已在所有 Ubuntu 版本上打包具有丰富的插件。

答案2

猜测问题是什么:我在脚本中散列了某些选项(由于格式原因无法看到上面的内容),这导致以下选项无法被配置脚本消化。“--enable-libass 未找到”只是意味着它从那时起重新开始。

从中我们学到了什么?命令选项之间没有哈希?

相关内容