在 Ubuntu 18.04 上安装 ffmpeg 4 时出现问题

在 Ubuntu 18.04 上安装 ffmpeg 4 时出现问题

我有一个 Ubuntu 18.04 的 Docker 镜像。它有来自普通 repo 包的 ffmpeg 3.4.6,但我想将其升级到 4.x。我尝试了jonathonfPPA 的“标准”方式,但得到的是库版本不匹配。

以下是详细信息:

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 标准:

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

我在 Google 上搜索了一下,发现似乎是库版本不匹配。我尝试卸载并重新安装相关的 libav 包,将 ppa 放在 Dockerfile 的开头(在安装任何实质性内容之前),等等apt upgradeapt autoremove各种组合,但似乎都无法给我一个可用的二进制文件。

我想我可以获得 ffmpeg 的静态版本并将其包含在我的 docker 镜像中,但我更愿意不这样做,而只是从 ppa/repo 包安装 4.x。我该怎么做?

答案1

只需安装ffmpeg通过折断

sudo snap install ffmpeg

https://snapcraft.io/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

相关内容