使用官方指南我已经在 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 的强大功能来获取包的构建依赖项:
- 使能够源代码存储库软件与更新(
software-properties-gtk
) 安装 ffmpeg 的构建依赖项:
sudo apt-get build-dep ffmpeg
继续配置和编译。
注意:ffmpeg 是已在所有 Ubuntu 版本上打包具有丰富的插件。
答案2
猜测问题是什么:我在脚本中散列了某些选项(由于格式原因无法看到上面的内容),这导致以下选项无法被配置脚本消化。“--enable-libass 未找到”只是意味着它从那时起重新开始。
从中我们学到了什么?命令选项之间没有哈希?