Я пытаюсь установить pHash , но при выполнении ./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
pHash похож на мертвый проект и не был обновлен с 2013.
Это ссылается avcodec_alloc_frame
, который в течение многих лет был удержан от использования для av_frame_alloc
, таким образом, это является, вероятно, несовместимым с текущим API FFmpeg.
необходимо будет или использовать древнюю версию FFmpeg (не рекомендуемый) или обновить pHash источник для пользований текущими библиотеками FFmpeg правильно.
, Если Вы не нуждаетесь в поддержке для перцептивных видео хешей, затем настройте pHash с --enable-video-hash=no
, и он опустит зависимость FFmpeg.
, Если Вы ищете аудио функциональность цифрового отпечатка, я рекомендую Chromaprint вместо этого с тех пор , FFmpeg поддерживает его .
То, когда Вы компилируете программное обеспечение, в чем Вы нуждаетесь, является библиотеками разработки а не библиотеками/инструментами во время выполнения. Конкретно, что Вы пропускаете, вот libavcodec-dev
пакет. Установите его, как обычно, с apt
и затем работайте ./configure
снова. Вы, вероятно, врежетесь в другую ошибку при высказывании, что Вы пропускаете другую библиотеку. Используйте apt-cache search
или сеть для нахождения, какой пакет необходимо установить, затем выполнить итерации, пока больше нет ошибки.