У меня есть образ Docker с Ubuntu 18.04. В нем есть, из обычного репо-пакета, ffmpeg 3.4.6, но я хотел бы обновить его до 4.x. Я попробовал "стандартный" способ jonathonf
's PPA, но я получаю несоответствие версии библиотеки.
Вот детали:
FROM nvidia/cudagl:10.0-runtime-ubuntu18.04
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN apt-get update -y && \
apt-get install -y apt-utils && \
apt-get install -y curl x11-apps xserver-xorg libglu1-mesa-dev freeglut3-dev mesa-common-dev \
libgtk2.0-0 libxmu-dev libxi-dev mesa-utils htop libgtk-3-dev libglfw3 vim \
python zip unzip software-properties-common ffmpeg imagemagick python3.6-dev && \
rm -rf /var/lib/apt/lists/*
+ some unrelated stuff (CUDA, python packages, etc.)
после чего (когда я вхожу в контейнер, но это то же самое, если я делаю это в Dockerfile) я делаю bog standard:
add-apt-repository ppa:jonathonf/ffmpeg-4
apt-get update
apt-get install ffmpeg
т.е. то, что я уже делал довольно много раз при настройке различных машин.
Однако, вместо обычного ffmpeg version 4.2 Copyright (c) 2000-2019 the FFmpeg developers
или подобного, то, что я получаю при запуске ffmpeg
- это вот это:
ffmpeg: relocation error: /usr/lib/x86_64-linux-gnu/libavfilter.so.7: symbol av_gcd_q version LIBAVUTIL_56 not defined in file libavutil.so.56 with link time reference
Я погуглил и похоже, что это несоответствие версии библиотеки. Я пробовал удалять и переустанавливать связанные пакеты libav, помещать ppa в начало Dockerfile (до установки чего-либо существенного), apt upgrade
, apt autoremove
, всевозможные комбинации, но ничего, кажется, не дает мне работоспособного бинарника.
Думаю, я могу получить статическую сборку ffmpeg и включить ее в мой образ docker, но я бы предпочел не делать этого и просто установить 4.x из ppa/repo пакета. Как я могу это сделать?
Просто установите ffmpeg через Snap:
sudo snap install ffmpeg
snap search ffmpeg
Name Version Publisher Notes Summary
ffmpeg 4.3.1 snapcrafters - A complete solution to record, convert and stream audio and video.
https://github.com/snapcore/snapcraft/blob/ master/docker/stable.Dockerfile