libavcodec 56 即使已安装也未找到

libavcodec 56 not found even though it is installed

当我尝试在 Ubuntu 18.04 中编译英特尔 OpenVino 项目时,我不断收到此错误消息:warning: libavcodec-ffmpeg.so.56, needed by /opt/intel/computer_vision_sdk_2018.3.343/opencv/lib/libopencv_videoio.so.3.4.3, not found

我也收到类似的错误消息:libavformat-ffmpeg.so.56libavutil-ffmpeg.so.54libswscale-ffmpeg.so.3

但是,当我在终端中输入 ffmpeg 时,我得到:

ffmpeg version 2.7.7 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04) configuration:
    libavutil 54. 27.100 / 54. 27.100
    libavcodec 56. 41.100 / 56. 41.100
    libavformat 56. 36.100 / 56. 36.100
    libavdevice 56. 4.100 / 56. 4.100
    libavfilter 5. 16.101 / 5. 16.101
    libswscale 3. 1.101 / 3. 1.101
    libswresample 1. 2.100 / 1. 2.100 Hyper fast Audio and Video encoder

我有所有正确的版本。 ffmpeg 在 /usr/local/bin 中。为什么 OpenVino 看不到它?任何建议将不胜感激,提前致谢!

这是我要编译的项目:https://github.com/intel-iot-devkit/intruder-detector

您的链接器抱怨找不到动态库。您需要找出这些共享对象在哪里以及您的链接器在哪里搜索它们。

ldconfig -v 2>/dev/null |grep -v ^$'\t'
# ldconfig is a tool for configure linker search path
# This command will tell you where it is searching for the necessay libs.

我猜你的库可能在 /usr/local/lib 中,链接器没有搜索到这个目录。

如果是这样,请尝试在 /etc/ld.so.conf.d 下创建一个包含该目录的文件,比如 /etc/ld.so.conf.d/local.conf。 然后 sudo ldconfig 并再次尝试构建您的项目。

似乎需要来自 Ubuntu 16.04 ffmpeg 包的文件,Ubuntu 打包为 libavcodec-ffmpeg.so.56 等(当前 Ubuntu 使用标准名称,例如libavcodec.so.57.)

您编译的 ffmpeg 没有配置选项,但您需要 --enable-shared 用于 .so 文件。

你可以用 --enable-shared 编译 FFmpeg 2.8 发布分支,它会提供 libavcodec.so.56 等。注意名称差异:libavcodec.so.56 vs libavcodec-ffmpeg.so.56.如果这导致问题,你将不得不处理它。我首先参考 ./configure --help 或您正在编译的任何等价物。