【问题标题】:Compiling FFMPEG x265 not found using pkg-config使用 pkg-config 未找到编译 FFMPEG x265
【发布时间】:2019-01-25 20:31:34
【问题描述】:

我正在尝试在 Win10 上使用 x265 编译 FFMPEG。我正在使用来自 xhmikosr 的最新完整 MinGW 版本:

http://xhmikosr.1f0.de/tools/msys/

没有 x265 的 FFMEPG 编译没有问题,编译 x265 独立也没有问题。 但是,当我在 ffmpeg 中使用 --enable-libx265 时,出现以下错误:

ERROR: x265 not found using pkg-config

这来自 config.log:

require_pkg_config libx265 x265 x265.h x265_api_get
check_pkg_config libx265 x265 x265.h x265_api_get
test_pkg_config libx265 x265 x265.h x265_api_get
false --exists --print-errors x265
ERROR: x265 not found using pkg-config

我的配置路径似乎都设置正确。

$ echo $PKG_CONFIG_PATH
C:\MYSYS\local\x86_64-w64-mingw32\lib\pkgconfig

当我寻找 x265 库时:

$ pkg-config --list-all
...
x265          x265 - H.265/HEVC video encoder
...

这里是调试日志:

$ pkg-config --debug
...
File 'x265.pc' appears to be a .pc file
Will find package 'x265' in file 'C:/MYSYS/local/x86_64-w64-mingw32/lib/pkgconfig\x265.pc'
...

为什么我尝试编译时 pkg-config 仍然找不到 x265 库?

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题。 x265 出现在 pkg-config --list-all 中,但在构建期间提供 x265 not found using pkg-config
  • 不,从来没有。我不再安装 MinGW。它必须与交叉编译器如何调用库有关。我确实记得如果 x265 混合使用,x265 甚至会导致编译其他 FFMPEG 库出现问题。但我真的对此知之甚少。
  • 在 MinGW/msys2 上有同样的问题。将 x265 构建为共享库并将 libx265.lib 重命名为 x265.lib 似乎已经为我解决了这个问题(知道 pkg-config 实际上可以看到它)。

标签: ffmpeg mingw pkg-config libx265


【解决方案1】:

x265.pc 有时不位于“/usr/local/lib/pkgconfig”,而是位于“/usr/lib/arm-linux-gnueabihf/pkgconfig/”,因此,您需要包含它也在导出中。

export PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/:/usr/local/lib/pkgconfig/

【讨论】:

  • 在您发布答案近一年后,我发现它试图解决一些与此线程没有太大关系的类似问题,但您的回答解决了我的问题,非常感谢!跨度>
  • 非常感谢。这个答案帮助我解决了这个问题。就我而言(使用 x265 安装 ffmpeg),所有其他软件包配置都在“$HOME/ffmpeg_build/lib/pkgconfig”中,但 x265 在“/usr/local/lib/pkgconfig/”中,所以我不得不稍微导出更改如:PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig:/usr/local/lib/pkgconfig"
【解决方案2】:

【讨论】:

【解决方案3】:

根据我的经验,我在 CentOS 中使用 x265 配置 ffmpeg,它也收到错误消息

ERROR: x265 not found using pkg-config

在我尝试这个之后:

$ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"

我用 x264 成功配置和编译了 ffmpeg。你可以试试这个。

【讨论】:

    【解决方案4】:

    它需要更多的库。请安装“libnuma”。

    【讨论】:

      【解决方案5】:

      我跟随wiki x265指导

      git clone https://bitbucket.org/multicoreware/x265_git
      cd x265_git/build/linux
      ./make-Makefiles.bash
      make
      

      在 Red Hat Enterprise Linux 8 中运行良好

      【讨论】:

      • 此 repo 不再可用。但是一旦我在终端上点击它,他们就会问我一个用户名和密码
      • 改用git clone https://bitbucket.org/multicoreware/x265_git x265
      【解决方案6】:

      经过多次尝试和错误,我相信我在 Ubuntu 16.04 下找到了解决方案和根本原因。此解决方案也可能适用于 Ubuntu 的其他变体。


      如果您遇到此线程中描述的包配置错误,请先尝试安装默认(基于存储库)库,然后使用您的 ffmpeg 构建脚本安装您的自定义版本。

      根据需要运行您的自定义脚本以从源代码编译 ffmpeg 和您的依赖库(例如 x265)之前运行这些命令:

      apt install -y libx265-dev
      

      如果另一个库失败,请尝试相同的技术,然后再次运行您的脚本以查看它是否有效。例如,有些人报告从源代码编译 ffmpeg 抱怨 gnutls。 Ubuntu 16.04 的解决方案是先通过 apt 安装它,然后运行你的脚本。

      apt install -y gnutls-dev
      

      如果您正忙于编译 x264 库(为了支持 H.264),只需在运行脚本之前运行它:

      apt install -y libx264-dev
      

      只要您的新脚本覆盖旧文件并且不清除它们,此方法就可以工作。

      背景/历史

      问题的根源至少可以追溯到 2017 年,尽管有很多人声称它似乎并没有真正得到解决。人们可以在各种论坛和网站上找到关于无论 ffmpeg 构建版本如何都无法让其编译正常工作的沮丧用户的参考资料,例如 here

      这是一个难以解决的问题,部分原因是用于安装 x265 库支持的 VLC Developer 说明已损坏。此外,由于今年早些时候BitBucket's decision to sunset Mercurial support,解释此问题以及如何解决它的信息存档不再可用。大多数解释问题以及如何解决问题的存档论坛帖子都消失了。在 GitHub 上仍有一些线索可以找到,但它们是关于该主题的不完整的 sn-ps 信息;没有一个提供完整的视角。

      从头开始安装 ffmpeg 肯定会让几乎所有人都头疼。我在网上找到的所有脚本(几十个)都没有按照描述正常工作。他们的大多数问题是不正确/过时的链接。带有 GitHub 链接的解决方案似乎是最可靠的。其他应避免(例如hg,如上所述不再支持)。

      【讨论】:

        【解决方案7】:

        你可以试试

        --pkg-config="pkg-config --static"

        【讨论】:

          【解决方案8】:

          我相信我找到了解决方案。问题似乎是当前指南是从master(这可能是开发人员想要的)中提取的,但在我的情况下 我实际上需要stable。而不是使用当前指南中提供的命令:

          sudo apt-get install libnuma-dev && \
          cd ~/ffmpeg_sources && \
          git -C x265_git pull 2> /dev/null || git clone --depth 1 https://bitbucket.org/multicoreware/x265_git && \
          cd x265_git/build/linux && \
          PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
          PATH="$HOME/bin:$PATH" make && \
          make install
          

          使用这个命令:

          sudo apt-get install libnuma-dev && \
          cd ~/ffmpeg_sources && \
          git -C x265_git pull 2> /dev/null || git clone --depth 1 https://bitbucket.org/multicoreware/x265_git -b stable && \
          cd x265_git/build/linux && \
          PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
          PATH="$HOME/bin:$PATH" make && \
          make install
          

          【讨论】:

          • 试过了,还是不行。在这里提出了一个问题:bitbucket.org/multicoreware/x265_git/issues/edit/7
          • 这可能是因为看起来“稳定”现在已经坏了:) @slhck。用下载或克隆早期标签替换 git 东西。我用过:wget http://ftp.videolan.org/pub/videolan/x265/x265_3.2.1.tar.gz && tar zxf x265_3.2.1.tar.gz && cd x265_3.2.1/build/linux
          • 似乎解决方案是同时获取 Git 标签,而不仅仅是做一个浅克隆:bitbucket.org/multicoreware/x265_git/issues/572/…
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多