使用pkg-config未找到编译FFMPEG x265

时间:2018-08-19 13:58:37

标签: ffmpeg mingw pkg-config libx265

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

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

没有x265的FFMEPG可以毫无问题地进行编译,而x265独立版本的编译也可以没有问题。 但是,当我在ffmpeg中启用--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库?​​

8 个答案:

答案 0 :(得分:1)

我遵循wiki x265的指南

$ hg clone https://bitbucket.org/multicoreware/x265
$ cd x265/build/linux
$ ./make-Makefiles.bash
$ make

并且在Red Hat Enterprise Linux 8中正常工作

答案 1 :(得分:1)

答案 2 :(得分:0)

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

ERROR: x265 not found using pkg-config

我尝试以下方法:

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您可以尝试

-pkg-config =“ pkg-config --static”

答案 5 :(得分:0)

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/

答案 6 :(得分:0)

经过反复尝试和试验,我相信我已经找到了解决方案和Ubuntu 16.04的根本原因。此解决方案也可能适用于Ubuntu的其他变体。


如果遇到此线程中描述的Package Config错误,请首先尝试安装默认(基于存储库)的库,然后使用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年,尽管有很多主张,但实际上并没有得到解决。可以轻松地在各种论坛和网站(例如here和此处)找到大量参考。

这是一个很难解决的问题,部分原因是用于安装x265库支持的VLC Developer指令已损坏。此外,由于BitBucket's decision to sunset Mercurial support今年早些时候的缘故,不再有解释此问题及其解决方法的信息档案。大多数归档的解释问题和解决方法的论坛帖子都消失了。在GitHub上仍有一些线索,但是它们不是有关该主题的信息摘要。没有一个提供完整的视角。

从头开始安装ffmpeg必然会引起几乎所有人的头痛。我在网上发现的所有脚本(数十个)都无法按照所述正常工作。它们的大多数问题是不正确/过时的链接。带有GitHub链接的解决方案似乎是最可靠的。应该避免其他情况(例如,hg,如上所述已不再受支持)。

答案 7 :(得分: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