8

我正在尝试在 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 库?

4

8 回答 8

3

解决方案:
添加--extra-libs=-lpthread
https://bitbucket.org/multicoreware/x265/issues/371/x265-not-found-using-pkg-config

于 2020-06-04T06:13:57.693 回答
3

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/
于 2019-11-20T13:16:34.287 回答
2

经过多次反复试验,我相信我在 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 构建版本如何都无法让他们的编译正常工作的沮丧用户的参考资料,例如这里

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

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

于 2020-08-30T20:30:55.333 回答
2

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

ERROR: x265 not found using pkg-config

在我尝试这个之后:

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

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

于 2018-08-30T09:32:19.670 回答
2

我遵循wiki x265的指导

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

在 Red Hat Enterprise Linux 8 中运行良好

于 2019-08-07T07:29:04.047 回答
2

它需要更多的图书馆。请安装“libnuma”。

于 2019-07-06T10:07:01.767 回答
1

你可以试试

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

于 2019-08-01T05:26:26.950 回答
0

我相信我找到了解决方案。问题似乎是当前指南正在从中提取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
于 2020-09-08T08:42:24.833 回答