Проблема запуска частного приложения с FFMPEG на Ubuntu 19

Я сталкиваюсь со следующей ошибкой при запуске приложения:

./Application: /lib/x86_64-linux-gnu/libavutil-ffmpeg.so.54: version `LIBAVUTIL_FFMPEG_54' not found (required by /usr/local/lib/libopencv_videoio.so.3.3)
./Application: /lib/x86_64-linux-gnu/libswscale-ffmpeg.so.3: version `LIBSWSCALE_FFMPEG_3' not found (required by /usr/local/lib/libopencv_videoio.so.3.3)
./Application: /lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56: version `LIBAVCODEC_FFMPEG_56' not found (required by /usr/local/lib/libopencv_videoio.so.3.3)
./Application: /lib/x86_64-linux-gnu/libavformat-ffmpeg.so.56: version `LIBAVFORMAT_FFMPEG_56' not found (required by /usr/local/lib/libopencv_videoio.so.3.3)

ffmpeg

ffmpeg version 4.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8 (Ubuntu 8.3.0-6ubuntu1)
  configuration: --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

ldd $ (который ffmpeg), кажется, в порядке:

linux-vdso.so.1 (0x00007ffc726da000)
libavdevice.so.58 => /usr/local/lib/libavdevice.so.58 (0x00007feed0645000)
libavfilter.so.7 => /usr/local/lib/libavfilter.so.7 (0x00007feed0374000)
libavformat.so.58 => /usr/local/lib/libavformat.so.58 (0x00007feed012a000)
libavcodec.so.58 => /usr/local/lib/libavcodec.so.58 (0x00007feecec71000)
libswresample.so.3 => /usr/local/lib/libswresample.so.3 (0x00007feecec53000)
libswscale.so.5 => /usr/local/lib/libswscale.so.5 (0x00007feecebc7000)
libavutil.so.56 => /usr/local/lib/libavutil.so.56 (0x00007feeceabd000)
libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007feece96f000)
libpthread.so.0 => /usr/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007feece94e000)
libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007feece763000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007feece73a000)
libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007feece735000)
libxcb-shape.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007feece72e000)
libxcb-xfixes.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007feece724000)
libz.so.1 => /usr/lib/x86_64-linux-gnu/libz.so.1 (0x00007feece708000)
liblzma.so.5 => /usr/lib/x86_64-linux-gnu/liblzma.so.5 (0x00007feece6e1000)
/lib64/ld-linux-x86-64.so.2 (0x00007feed06ca000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007feece4dd000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007feece2d5000)
libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007feece2bb000)
librt.so.1 => /usr/lib/x86_64-linux-gnu/librt.so.1 (0x00007feece2b0000)

У кого-нибудь есть идеи, как это обойти?

1
задан 26 August 2019 в 12:48

2 ответа

Ваше приложение старо и ищет действительно старую версию FFmpeg.

Проблемы:

  • Приложение ищет .so файлы в неправильном месте. Ваше приложение ищет /lib/x86_64-linux-gnu/libavutil-ffmpeg.so.54, и т.д., но Ваш FFmpeg, вероятно, только обеспечивает /usr/local/lib/libavutil.so.56.
  • Приложение ищет неправильные имена. libavutil-ffmpeg старая схема именования, используемая ffmpeg пакетом в старых версиях Ubuntu.
  • Приложение ожидает более старую версию FFmpeg. 54 и 56 представьте основные версии каждой библиотеки FFmpeg. Основными версиями не является API, совместимый друг с другом. Приложение похоже на него, был записан для ответвления выпуска FFmpeg 2.8 согласно Вашим номерам основной версии. Это очень старо. Вы скомпилировали и установили FFmpeg 4.2. Или обновите код приложения для использования ответвления выпуска FFmpeg 4.2 или FFmpeg 2.8 установки вместо этого.
1
ответ дан 7 December 2019 в 14:59

Спасибо @llogan! Это был ideed, как Вы объясняете.

Решение: Я удалил всю старую библиотеку, и имейте загрузку точно каждый .deb пакет необходимого .lib из репозитория Ubuntu, и установил их вручную.

0
ответ дан 7 December 2019 в 14:59

Другие вопросы по тегам:

Похожие вопросы: