FFMPEG 已安装但未找到

FFMPEG 已安装但未找到

我正在尝试安装酸碱度,但是当我执行 ./configure 时返回此消息:

...

*** Configuring video Hash ***

checking whether FFmpeg is present... checking for avcodec_alloc_frame in -lavcodec... no
configure: error: 

*** libavcodec not found.
You need FFmpeg. Get it at <http://ffmpeg.org/>

但是 FFMPEG 已正确安装,实际上执行ffmpeg它返回:

ffmpeg version 3.0.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
  configuration: 
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

为什么会发生这种情况?

更新:

libavcodec-dev已经安装:

luca@luca-OptiPlex-7040:~/Downloads/pHash-0.9.6$ sudo apt-get install libavcodec-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libavcodec-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 74 not upgraded.

和:

luca@luca-OptiPlex-7040:~/Downloads/pHash-0.9.6$ whereis libavcodec
libavcodec: /usr/local/lib/libavcodec.a /usr/include/libavcodec /usr/share/man/man3/libavcodec.3.gz

答案1

pHash 看起来像是一个死亡项目,自 2013 年以来就没有更新过。

它引用avcodec_alloc_frame了多年来已被弃用对于av_frame_alloc,因此它可能与当前的 FFmpeg API 不兼容。

您要么必须使用古老的 FFmpeg 版本(不推荐),要么更新 pHash 源以正确使用当前的 FFmpeg 库。

如果您不需要支持感知视频哈希,则配置 pHash,--enable-video-hash=no它将省略 FFmpeg 依赖。

如果你正在寻找音频指纹功能,我推荐色度印刷相反,因为FFmpeg 支持它

答案2

您可以通过从其 GitHub 存储库克隆此项目来解决此问题:

https://github.com/aetilius/pHash

答案3

当您编译软件时,您需要的是开发库,而不是运行时库/工具。具体来说,您缺少的是包libavcodec-dev。像往常一样安装它apt,然后./configure再次运行。您可能会遇到另一个错误,提示您缺少另一个库。使用apt-cache search或网络查找您需要安装的包,然后迭代直到没有更多错误。

相关内容